The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Linux threads (Или я дурак или потоки г..но)"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Linux threads (Или я дурак или потоки г..но)"
Сообщение от Iancen emailИскать по авторуВ закладки on 22-Авг-00, 18:18  (MSK)
Решил портировать потоки под линух из win32 и столкнулся с парадоксом, или у меня руки кривые или ядро криво компильнуто или я вообще ничего не понимаю или под конец потоки в линухе г..но. Одним словом получилось что потоки в линухе реализованы невытесняемым методом ? т.е. у меня есть два потока, каждый работает в глухом цикле. Если я не вызываю sched_yield() то второй поток у меня не получает управление.<p>пример:<br>#include "unistd.h"<br>#include "pthread.h"<br>#include "sched.h"<p>void *thread_routine1(void *arg){<br>    int i=0;<br>    sleep(3);<br>    for(;i>=0;i++){<br>      printf("thread1 %d\n",i);<br>//      sched_yield();<br>    }<br>    return NULL;<br>}<br>void *thread_routine2(void *arg){<br>    int i=0;<br>    sleep(3);<br>    for(;i>=0;i++){<br>      printf("thread2 %d\n",i);<br>//      sched_yield();<br>    }<br>    return NULL;<br>}<br>int main (int argc, char *argv[]){<br>    pthread_t thread_id1,thread_id2;<br>    pthread_attr_t thread_attr1,thread_attr2;<br>    pthread_attr_init (&thread_attr1);<br>    pthread_attr_init (&thread_attr2);<br>    pthread_create (&thread_id1, &thread_attr1, thread_routine1, NULL);<br>    pthread_create (&thread_id2, &thread_attr2, thread_routine2, NULL);<br>    pthread_join (thread_id1, NULL);<br>    pthread_join (thread_id2, NULL);<br>    return 0;<br>}<p>Если кто понимает в чем я лопухнулся подскажите, а то такой великий проект пропадает из за этого маразма.<p>p.s.<br>CPU 1шт.<br>Linux 2.2.12
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Re: Linux threads (Или я дурак или потоки г..но)"
Сообщение от Andrew emailИскать по авторуВ закладки on 22-Авг-00, 20:11  (MSK)
: Решил портировать потоки под линух из win32 и столкнулся с парадоксом, или у меня руки кривые или ядро криво компильнуто или я вообще ничего не понимаю или под конец потоки в линухе г..но. Одним словом получилось что потоки в линухе реализованы невытесняемым методом ? т.е. у меня есть два потока, каждый работает в глухом цикле. Если я не вызываю sched_yield() то второй поток у меня не получает управление.<br>Ну не знаю - может с ядром что-то не в порядке.<br>Я ради интереса у себя под 2.2.14 - пример пересобрал<br>все работает, нити переключаются.?<p><br>
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Linux threads (Или я дурак или потоки г..но)"
Сообщение от Igor emailИскать по авторуВ закладки on 23-Фев-01, 20:40  (MSK)
откомпилено под FreeBSD 4.2-STABLE FreeBSD 4.2-STABLE #0: Thu Feb  1 14:58:35 MSK 2001 i386 с
параметром -pthread все работает нормально
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру