|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.12.2011, 15:33 | #1 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
Наработки пула потоков
Здраствуйте форумчане!
Мог бы кто-нибудь поделиться своим пулом потоков(статическим)? Извините что вопрос выглядит наглым, просто уже наверное вторую неделю пытаюсь сделать пул поток, но не получаеться Если что, могу скинуть то, что у меня сейчас получаеться. |
29.12.2011, 21:40 | #2 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Я бы делал так:
1. Главный класс пула потоков. В конструкторе число созданных потоков. Метод взятия свободного потока с указанием процедуры для Execute, которую поток должен делать. Метод сбора всех отработавших потоков обратно в пул. 2. Класс рабочего потока. Ну и обрабатывать внештатные ситуации, сервисные функции (текущее число заняных потоков, процент использования пула и т.п.)
"ковыряю изнутри" (с)
|
29.12.2011, 23:37 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Вот же описание обьектного пула: http://ru.wikipedia.org/wiki/Объектный_пул
Создать можно на основе TList из contrs.pas |
30.12.2011, 02:19 | #4 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
Вот что у меня есть на даный момент. Пожалуйста, помогите протестировать и довести к стабильной работе. Сейчас проблема есть когда потоков меньше, чем задач, а также приостановление потока(процедура Execute)
Код:
|
30.12.2011, 19:18 | #5 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
|
31.12.2011, 19:43 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
contrs в общем как-то так. Этот модуль есть в delphi 7. Точнее посмотрите в справке. Там сложно-стрёмное имя.
У пула потоков есть 2 списка: 1. Активные потоки: те которые заняты работой. 2. Ожидающие потоки: те которые ожидают работу. Сам пул потоков это TObject. Его списки это TList. Кроме того, у вас вообще не пул потоков. В пуле потоков, число объектов постоянно. Завершенные потоки должны обнулиться, но не уничтожится, и переместиться в список ожидающих потоков. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
наработки по сетевой игре | sashonk | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 0 | 29.08.2010 00:09 |
Часы(есть наработки) | sllh_111 | Помощь студентам | 2 | 19.04.2010 17:04 |
Наработки... | CodeExpert | Фриланс | 2 | 15.04.2010 11:50 |
Pascal, наработки есть. | Otre4eHHbIu | Помощь студентам | 1 | 24.12.2009 08:43 |