Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Speicherproblem mit Threads

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.02.2008, 20:14 Uhr
~CPP-Fan
Gast


Hallo!

Ich hatte mal zum Testen die Anzahl der maximalen Threads mit echo 100000 > /proc/sys/kernel/threads-max auf 100000 hochgesetzt und die Anzahl getestet. Gestartet wurden ca. 380 Threads (im Gegensatz zu fast 18000 Threads vorher). Anschließend gab trotz Rücksetzen auf 16383 und Serverneustart auch das folgende Programm nur 381 Threads aus und gibt ab dem 382. Thread die Fehlermeldung "12 Cannot allocate Memory" aus:


C++:
#include <iostream>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>

#define NUM_THREADS 2000

using namespace std;

void *io(void *t){
int *i=reinterpret_cast<int *>(&t);
cout << "Thread - Nummer: " << *i << endl;
}

int main(){
int t,rc;
pthread_t threads[NUM_THREADS];

for(t=0; t<NUM_THREADS; t++){
rc = pthread_create(&threads[t], NULL, io, (int *) t);
if(rc!=0){
cout << t << " ERROR; return code from pthread_create() is " << errno << " " << strerror(errno) << endl;
}
}
sleep(10);
}  



Was kann ich tun, bzw. was hab ich falsch gemacht? Wurden durch das Hochsetzen irgendwelche Speichereinstellungen geändert?

Vielen Dank für eure Hilfe + viele Grüße,
Marc
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: