![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
Здравствуйте, мне нужна программа которая выполняет следующее:
запускаются 4 потока "одновременно" каждый поток вычисляет много операций сложения, например сумма от 1 до 100000. (процессор должен переключаться между подсчетами потоков) какой-нибудь алгоритм переключения между потоками, лучше чтобы каждому потоку отдавалось определенное время выполнения. программа должная использовать критическую секцию для блокировки остальных потоков организация лучше через TThread кто нибудь дайте пример программы такой, сегодня 8 часов сидел пытался написать прогу такую и переделать(о думающих философах и еще какие то были) , ничего не вышло. читал тему "Многопоточность - как это делается в Дельфи. Не используйте потоки, не прочитав это" не понятно ничего там, лучше бы в коде комментарии были. помогите пожалуйста! что должны делать процессы:
strtoint(FmMain.Va.Text) - strtoint(FmMain.Vh.Text) : вводятся с формы хотел передалать рпогу про философов, когда разобрался в ней понял что алгоритм выбора работающего процесса мне не подходит да я и не совсем понял при чем тут много поточность исходник про философов http://depositfiles.com/files/9apc1zajd еще нашел исходник вроде там переключение по времяни только мне код не очень понятен http://depositfiles.com/files/yjmsnymbp |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Не существует такого алгоритма. Переключением потоков занимается операционная система. Пользовательский уровень управления - волокна (fiber). -------------------- |
|||
|
||||
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
а как тогда организовать много поточность?
|
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Организовать многопоточность без проблем.
Но вот это условие невыполнимо. Можно искусственно тормозить каждый поток для передачи управления другим, но заставить поток выполняться именно указанное время, указать, какому потоку работать - невозможно. -------------------- |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 16 Всего: 89 |
Вы сначала скажите, с какой целью вы это хотите сделать. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
я хочу понять как это работает, мне проще понять по примеру, желательно с комментариями.
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 16 Всего: 89 |
Плюм и плюх.
Решение задач, особенно типа философов со сложной синхронизацией, я бы отложил на потом. Пока разберитесь с основами. Посмотрите демку в Delphi (сортировка). -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
я пример нашел с много поточностью.
это не то что мне нужно. ПОМОГИТЕ КТО НИБУДЬ! это разве такая сложная задача? 4 процесса одновременно стартуют результат выполнения по очереди выполнится напишет в лейбл что он финишировал. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Это - не сложная.
Эта - сложная. -------------------- |
|||
|
||||
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
вот что мне нужно было:
![]() |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Вряд ли. Код с грубыми ошибками. Хуже - он даже не будет работать так, как задумывал автор, хотя он, видимо, об этом так и не узнал. Если бы сформулировал свои вопросы правильно, тебе бы уже давно помогли. Это сообщение отредактировал(а) Демо - 17.1.2010, 18:36 -------------------- |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |