Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Максимальное кол-во потокв? (https://forum.antichat.xyz/showthread.php?t=86270)

Smapt 26.09.2008 02:01

Максимальное кол-во потокв?
 
Сколько потоков максимум может создавать приложение в ХР/win2000/win2003 ???

P3L3NG 26.09.2008 02:05

дефолтно вроде 10, но патчем расширяют до любого. у меня 1000 стоит

nikfm 26.09.2008 02:18

Ищи патч разделе брут icq

Хозяин 26.09.2008 02:26

win2003 энтерпрайз 2000 потоков

Smapt 27.09.2008 00:50

Цитата:

Сообщение от P3L3NG
дефолтно вроде 10, но патчем расширяют до любого. у меня 1000 стоит

Дефолтно 100 это точно, в ХР по крайней мере...


AciD_FreaK, спс

Chode 27.09.2008 02:21

10 дефолтно в нормальной лицензионной винде =)
а максимально при патче вроде не ограничено как уж потянет машина

X-Venom 27.09.2008 10:19

2000 и 2003 спокойно тянули 1500 потоков

SlyBit 27.09.2008 18:00

Ограничения только в количестве свободной памяти.
На 10 потоков никак не может стоять ограничение для процесса, т.к. в одном из svchost.exe около 80 потоков, в winlogon.exe штук 30.
Следующий кусочек кода создает в моих системах около 2.3к потоков в своем процессе до тех пор, пока CreateThread не возвращает ERROR_NOT_ENOUGH_MEMORY:
Код:

#include <windows.h>
#pragma comment(linker, "/ENTRY:Entry")
#define _LOG_FILE_ "out.log"
HANDLE hFile = NULL;

VOID WINAPI Log(PCHAR msg,...)
{
    char buff[1024] = "\0";
    va_list mylist;
    DWORD dwWrited = 0;
 
    va_start(mylist, msg);
    wvsprintf(buff, msg, mylist);
    va_end(mylist);
 
    if(!hFile || (hFile == INVALID_HANDLE_VALUE))
        hFile = CreateFile(_LOG_FILE_, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS,
                            FILE_ATTRIBUTE_NORMAL,  0);
 
    if(hFile != INVALID_HANDLE_VALUE)
        WriteFile(hFile, buff, strlen(buff), &dwWrited, 0);
}

ULONG WINAPI Thread(PVOID pParam)
{
    Log("Create: id=%i\r\n", GetCurrentThreadId());
    Sleep(-1);
    return 1;
}

VOID WINAPI Entry()
{
    int i = 0;
 
    for(i = 0; i < 10000; i++){
        if(!CreateThread(NULL, 0, Thread, NULL, 0, NULL)) {
            Log("CreateThread error %i\r\n", GetLastError());
            break;
        }
    }
    MessageBox(0, 0, 0, 0);
 
    ExitProcess(0);
}

Давно качал "патч для винды", который якобы давал возможность создавать аж до 50! :D потоков, оказалась обычная малваря.

12usver12 27.09.2008 18:28

наверно имеется ввиду не просто потоки а сетевые потоки в них ограничение 10 а можно пропатчить до 100

Smapt 27.09.2008 18:33

12usver12, а какая разница между обычным и "сетевым" потоками???? и что это за потоки такие вообще? :)))

В ХР сп2 проф, без всяких патчей узаю 100 потоков без проблем)


Время: 14:29