[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