Форум: "Потрепаться";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизThread creation error Найти похожие ветки
← →
csr © (2004-04-28 16:10) [0]Что означает этот эррор и как его лечить?
Thread creation error: Not enough storage is available to process this command
← →
Digitman © (2004-04-28 16:12) [1]ты поди влупил параметром в CreateThread бешеный размер требуемого потоку стека ?
← →
Тимохов © (2004-04-28 16:13) [2]или это уже стотысячный по счету поток
← →
panov © (2004-04-28 16:35) [3]>Тимохов © (28.04.04 16:13) [2]
Это уже миллионный поток для рассылки спамерских писем.
-----------------
SPAMERS MUST DIE.
← →
Матлабист (2004-04-28 16:35) [4]> Что означает этот эррор и как его лечить?
Код приведи что-ль...
← →
csr © (2004-04-28 17:29) [5]Я использую класс TThread, по этому чвно не указываю размер стека... И в кол-ве потоков тут не проблема, т.к. подобные штуки и на большем кол-ве потоков работали... А тут... буквально 1500 потоков всего и такая вот ерунда получается... Не может поток даже стартануть. А если ставим скажем 1000 потоков, то пашет все ок... Может можно как-нить разобраться в чем дело?
2 Матлабист : Ты хочешь чтоб я тут привел код модуля потока?? ))
← →
Тимохов © (2004-04-28 17:31) [6]а на фига столько?
1) спам
2) жизнь моделируете
← →
csr © (2004-04-28 17:46) [7]2 Тимохов:
А какая разница? Мне поставили задачу - я пишу прогу, выполняю, то что мне сказали - мое дело малое... Сказали так сделать, вот и делааю...
Вы мне лучше подскажите конкретно по сабжу, пожалйста.
← →
Игорь Шевченко © (2004-04-28 17:50) [8]
> А тут... буквально 1500 потоков всего и такая вот ерунда
> получается
Дурацкое решение. Все процессорное время будет тратиться на переключение контекстов.
← →
Smithson © (2004-04-28 17:51) [9]Конкретно по сабжу, на выбор:
1. Уменьшить число потоков
2. Уменьшить потребности каждого экземпляра потока в ресурсах (стек, память в куче, объекты системы)
3. Привести код (с комментариями), тогда возможно будет его проанализировать (если найдутся желающие) и подсказать пути оптимизации или решения этой же задачи другими средствами.
4. Ну или сидеть и думать самому.
Выбирай.
← →
csr © (2004-04-28 17:52) [10]2 Игорь Шевченко
более умное решение можешь предложить? Проц атлон 3000 загружает на 30% максимум! Тут не в этом вопрос! Все написано ОК, но почему-то ошибка вылетает! Кто знает как пофиксить это??
← →
csr © (2004-04-28 17:55) [11]2 Smithson ©
Вариант №2: Подскажи, как используя класс TThread Уменьшить потребности каждого экземпляра потока в ресурсах (стек, память в куче, объекты системы) ?
← →
Smithson © (2004-04-28 17:58) [12]Это класс довольно экономно расходует реcурсы. Но ты-то используешь не TThread, а его потомка, про таланты и аппетиты которого нам по-прежнему ничего не известно.
← →
csr © (2004-04-28 18:01) [13]2 Smithson ©
А уменьшить кол-во потоков - низя... Мне б наоборот достичь того чтоб увеличить их мона было ;)
И вот еще что: если в пределах одного процесса стартануть еще 1000 потоков (но уже другого назначения), то тож такой баг... А если несколько копий проги запустить, то все на 1000 потоках валят как надо )) Только правда проц умирает почти полностью...
← →
csr © (2004-04-28 18:04) [14]2 Smithson ©
Дак создается он по дефолту - никаких значений размера стека и прочего я не менял...
Как это можнго сделать?
← →
Игорь Шевченко © (2004-04-28 18:06) [15]
> Мне б наоборот достичь того чтоб увеличить их мона было
> ;)
Можно вопрос ? Что за задача такая ?
← →
Тимохов © (2004-04-28 18:07) [16]
> Игорь Шевченко © (28.04.04 18:06) [15]
вам же сказал - какая вам разница
← →
Smithson © (2004-04-28 18:12) [17]Да, я видимо не точно сформулировал свои пункты. По 1, 2 и 4 пункту возможно только самостоятельная работа. И только 3 пункт может стать основой для продолжения обсуждения.
:)
Удачи!
← →
csr © (2004-04-28 18:36) [18]2 Smithson ©
Дак ты не знаешь как менять размер стека у потомков класса TThread ?
← →
Тимохов © (2004-04-28 18:44) [19]в потомке tthread перекрыть конструктор (см. tthread.create)
в BeginThread вторым парметром передавать не 0, а другое значение.
почитать в MSDN про функцию createthread - я точно не помню - достаточно ли этого будет или нужно еще уменьшить размер стека у всего приложения.
← →
Smithson © (2004-04-28 18:57) [20]
constructor TThread.Create(CreateSuspended: Boolean);
var
Flags: DWORD;
begin
inherited Create;
AddThread;
FSuspended := CreateSuspended;
Flags := 0;
if CreateSuspended then Flags := CREATE_SUSPENDED;
FHandle := BeginThread(nil, 0, @ThreadProc, Pointer(Self), Flags, FThreadID);
end;
0 - означает, что система сама оперирует стеком и выделяет столько, сколько нужно. Отсюда вывод - ты в своем потомке этого класса не жри так стек и он будет расходоваться экономнее.
← →
Тимохов © (2004-04-28 18:59) [21]
> 0 - означает, что система сама оперирует стеком и выделяет
> столько, сколько нужно
нет
размер берется из основной программы.
← →
Тимохов © (2004-04-28 19:00) [22]чтобы быть корректным в терминах поправлю себя - из главного потока, а не из основной программы.
← →
panov © (2004-04-28 19:02) [23]>Игорь Шевченко © (28.04.04 18:06) [15]
Дык вот ответ - http://www.caesar-soft.biz/
← →
Smithson © (2004-04-28 19:03) [24]Ос, не знал. Считал, что система сама распределяет по страничке...
Спасибо.
← →
Игорь Шевченко © (2004-04-28 19:09) [25][23] panov © (28.04.04 19:02)
SPAMERS MUST DIE!!!
И как у людей совести хватает...
← →
csr © (2004-04-28 21:16) [26]2 panov ©
Ну что ты сайт-то светишь? Я щас не работаю там. Чего ты тут шорох наводишь? Не можешь ответить - вот и не отвечай.
Спасибо господа, я попробую с размером стека... Позже сообщу что получилось...
← →
Игорь Шевченко © (2004-04-28 22:33) [27]csr © (28.04.04 21:16)
> Ну что ты сайт-то светишь?
Так ты его сам в анкете светишь. Нафиг спамеров, давить их, как тараканов. Тем более, многопоточных.
← →
Юрий Зотов © (2004-04-28 23:44) [28]Многопоточный таракан?
М-м-м... оригинально...
Очень хочется, чтобы игры с размером стека не прошли. Задолбали вы своим мусором, ребята. Так что вините себя же... творцы спамерских тулзов... блин.
← →
Digitman © (2004-04-29 08:32) [29]хуже спамера только спамер-дилетант с инициативой)
безо всяких доп.потоков вполне можно обойтись для решения той же гнилой задачи)
← →
Smithson © (2004-04-29 10:46) [30]Тимохов © (28.04.04 19:00) [22]
Для общего развития можно уточнения? Из главного (первого) потока прорцесса или из вызывающего потока? Ведь BeginThread может дернуть и вторичный поток...
← →
Тимохов © (2004-04-29 11:25) [31]
> Smithson © (29.04.04 10:46) [30]
В доке написано, что если передавать 0, то будет браться размер стека главного потока.
Сами посмотрите createthread+f1.
Всем.
Вот блин - в анкету забыл посмотреть и совет дал, хорошо бы чтобы не правильный :(((
← →
Smithson © (2004-04-29 11:28) [32]Спасибо, пошел в MSDN. Не люблю я его...
← →
Тимохов © (2004-04-29 11:30) [33]
> Smithson © (29.04.04 11:28) [32]
Можно в дельфи почитать
вот
dwStackSize
Specifies the size, in bytes, of the stack for the new thread. If 0 is specified, the stack size defaults to the same size as that of the primary thread of the process.
← →
csr © (2004-04-29 12:26) [34]Спасибо за понимание господа)) А неподскажите-ли также любезно, от чего может происходить ошибка Thread creation error: Not enough storage is available to process this command?
← →
Игорь Шевченко © (2004-04-29 12:35) [35]csr © (29.04.04 12:26)
Не подскажем.
Spamers must die.
← →
Григорьев Антон (2004-04-29 12:39) [36]
> csr © (29.04.04 12:26) [34]
> Спасибо за понимание господа))
Какое, к чёрту, понимание? Нормальный человек никогда не поймёт тех [вырезано цензурой], которые зарабатывают деньги тем, что портят жизнь другим людям.
← →
Юрий Зотов © (2004-04-29 12:55) [37]> csr © (29.04.04 12:26) [34]
> от чего может происходить ошибка Thread creation error: Not
> enough storage is available to process this command?
Я думаю, Вам стоит написать письмо с этим вопросом в известный Центр американского английского. Нет сомнений, что тамошние специалисты смогут совершенно точно перевести эту фразу и дать квалифицированный ответ. Причем неоднократно. Чтобы лучше дошло.
← →
Digitman © (2004-04-29 13:06) [38]
> csr © (29.04.04 12:26) [34]
> от чего может происходить ошибка Thread creation error:
> Not enough storage is available to process this command?
в при всем неприятии тебя как LMD и SMD тебе теме не менее уже разжевали - ты как минимум стеками своих потоков "сожрал" ВСЕ доступное ВАП процесса)).. не говоря уже о прикладной "спаммерской" логики самих потоков))
p.s.
"Боня, ты тупой !" (с) КВН
← →
Тимохов © (2004-04-29 13:25) [39]
> "Боня, ты тупой !" (с) КВН
а куда же им деваться, только в спамеры подаваться.
"От Ивана.
Супир нодддежжные маас совые росссылке 10000000000 адрисссов всиго за 100 уё"
← →
csr © (2004-04-30 14:35) [40]Удалено модератором
Примечание: Offtopic
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.039 c