Posted By: Quasimodo (Quasimodo) on 'CZprogram' Title: pthreads Date: Sun Feb 2 17:40:02 2003 Zdar, problem je takovyhle: zkousim nejake programovani threadu pod linuxem, coz neumim (ani jinde). A podle mych pokusu se neda z jednoho procesu spustit vice nez 255 threadu za dobu jeho existence. Ne zaroven, ale za celou dobu co pobezi. To se mi zda jako dost absurdni omezeni, tak se ptam, jestli uz nekdo na neco takoveho narazil nebo jestli neco dela blbe. Pracuju s kernelem 2.4.7, #/lib/libc.so.6 GNU C Library stable release version 2.2.4, by Roland McGrath et al. Copyright (C) 1992-1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 2.96 20000731 (Red Hat Linux 7.1 2.96-97). Compiled on a Linux 2.4.7-6smp system on 2001-09-04. Available extensions: GNU libio by Per Bothner crypt add-on version 2.1 by Michael Glad and others The C stubs add-on version 2.1.2. linuxthreads-0.9 by Xavier Leroy BIND-8.2.3-T5B NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Glibc-2.0 compatibility add-on by Cristian Gafton libthread_db work sponsored by Alpha Processor Inc Report bugs using the `glibcbug' script to <bugs@gnu.org>. Zdrojak na testovani kolik system unese vypada takhle: #include <pthread.h> int Cnt=0; int NCnt=0; void *Loop(void *) { Cnt--; return 0; }; int main() { pthread_t pt; while(true) { Cnt++; NCnt++; if (pthread_create(&pt, 0, Loop, 0)) { cout << Cnt << "t" << NCnt << "tCHYBA" << endl; return(-1); }; cout << Cnt << "t" << NCnt << endl; } }; Je tu jeste zapotrebi nejake info? Myslim, ze by to melo stacit... Vysledek je stejny nezavisle na kompilatoru - gcc a kylix davaji stejne vysledky. Pameti je fura a pthread_create vraci chybu EAGAIN - ostatne podle manualovych stranek ani jinou vratit nemuze :-) - Clovek je nejpomalejsi zname zarizeni typu I/O. Quasimodo