Проблема с памятью ( Createthread?)

  • Автор темы xykapec
  • Дата начала
Статус
Закрыто для дальнейших ответов.
X

xykapec

#1
Всем доброго времени суток.

В общем, у меня есть програмка написаная так чтобы можно было компилировать и в windows и в linux.

Под windows програмка работает нормально, но вот в linux потр*цензура*ет слишком много памяти.
Програмка работает через потоки. Как я понял именно поток занимает слишком много памяти.
Наприпер при 22 потоках она забивает 220мб.
В windows при 140-ка потоках програмка знаимает 40мб максимум.

Вот кусок кода ответсвенный за открытие нового потка:

Код:
#ifndef WINDA
void newthread(void* func, void* p)
{
pthread_t	ThrId;
pthread_attr_t	tattr;

pthread_attr_init(&tattr);
pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED);
pthread_create(&ThrId, &tattr, func, p);
pthread_attr_destroy(&tattr);
//pthread_detach(ThrId);
}
#else
void newthread(void* func, void* p)
{	  
CloseHandle( CreateThread( NULL, 0, (unsigned long (_stdcall*)())func, p, 0, NULL) );
}
#endif
Я не очень соображаю в программированнии, поэтому прошу Вашей помощи.
Есть 20wmz в качестве вознаграждения.


Большое Спасибо!
 
Статус
Закрыто для дальнейших ответов.