[sisyphus] Как ускорить работу с потоками?

Ildar Mulyukov =?iso-8859-1?q?ildar_=CE=C1_users=2Esourceforge=2Enet?=
Вт Сен 7 18:25:13 MSD 2004


Vadim Gorodisky wrote:

>On Tue, 31 Aug 2004 11:32:51 +0400
>"Boronin Sergey" <analisys на quality.s2.ru> wrote:
>
>  
>
>>Интересная особенность, что при попытке создания 1015 потоков в линуксе,
>>выдается exception, при том, что в винде и 8000 потоков нормально
>>отрабатывали, хотя и медленно. Не знаете с чем это может быть связано?
>>    
>>
>Как-то давно с этим сталкивался, помню, полечилось тем,
>что новые треды содавались после того, как им устанавливали
>
>pthread_attr_setdetachstate(thr->attr, PTHREAD_CREATE_DETACHED);
>  
>
Не совсем. Это полечит только следующую ситуацию: в программе Вы 
создаёте потоки, которые после завершения оставляют код завершения, но 
этот код завершения, к сожалению, никто не считывает. Из-за этого 
остаются "зомби", которые ждут, что их считают. Но, хуже того, остаются 
занятыми дескрипторы нитей. Это, вместе с ограничением кол-ва 
дескрипторов в ядре, препятствует созданию новых нитей.
Есть простые спрособы увеличить это количество - поищите на opennet.ru - 
там точно есть. Но нужно пересобирать ядро.

С уважением, Ильдар

-- 
Ildar  Mulyukov, 
  free SW designer/programmer
================================================
email: ildar на users.sourceforge.net
projects: http://os-development.sourceforge.net/
home: http://tuganger.narod.ru/
ALT Linux Sisyphus
================================================




Подробная информация о списке рассылки Sisyphus