Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с памятью ( Createthread?)
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
xykapec
Всем доброго времени суток.

В общем, у меня есть програмка написаная так чтобы можно было компилировать и в 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 в качестве вознаграждения.


Большое Спасибо!
xykapec
smile.gif
Проблема решена.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.