Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.55 MB
Время: 0.035 c
14-1083226422
BiN
2004-04-29 12:13
2004.05.23
У нас в Москве машины с лентами


8-1076917382
SergeySA
2004-02-16 10:43
2004.05.23
Принадлежит ли точка области (полигону)


7-1081755929
Katya_mgkit
2004-04-12 11:45
2004.05.23
Служба


1-1083911261
Ш-К
2004-05-07 10:27
2004.05.23
Имитация множественного наследования


6-1080715226
СержК
2004-03-31 10:40
2004.05.23
Системное время удаленного компьютера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский