| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > многопоточность |
| Автор: Norfonzor 14.1.2010, 16:09 | ||
| Здравствуйте, мне нужна программа которая выполняет следующее: запускаются 4 потока "одновременно" каждый поток вычисляет много операций сложения, например сумма от 1 до 100000. (процессор должен переключаться между подсчетами потоков) какой-нибудь алгоритм переключения между потоками, лучше чтобы каждому потоку отдавалось определенное время выполнения. программа должная использовать критическую секцию для блокировки остальных потоков организация лучше через TThread кто нибудь дайте пример программы такой, сегодня 8 часов сидел пытался написать прогу такую и переделать(о думающих философах и еще какие то были) , ничего не вышло. читал тему "Многопоточность - как это делается в Дельфи. Не используйте потоки, не прочитав это" не понятно ничего там, лучше бы в коде комментарии были. помогите пожалуйста! что должны делать процессы:
strtoint(FmMain.Va.Text) - strtoint(FmMain.Vh.Text) : вводятся с формы хотел передалать рпогу про философов, когда разобрался в ней понял что алгоритм выбора работающего процесса мне не подходит да я и не совсем понял при чем тут много поточность исходник про философов http://depositfiles.com/files/9apc1zajd еще нашел исходник вроде там переключение по времяни только мне код не очень понятен http://depositfiles.com/files/yjmsnymbp |
| Автор: Norfonzor 14.1.2010, 16:41 |
| а как тогда организовать много поточность? |
| Автор: Демо 14.1.2010, 17:07 | ||
Организовать многопоточность без проблем.
Но вот это условие невыполнимо. Можно искусственно тормозить каждый поток для передачи управления другим, но заставить поток выполняться именно указанное время, указать, какому потоку работать - невозможно. |
| Автор: CodeMonkey 14.1.2010, 17:54 |
Вы сначала скажите, с какой целью вы это хотите сделать. |
| Автор: Norfonzor 14.1.2010, 18:11 |
| я хочу понять как это работает, мне проще понять по примеру, желательно с комментариями. |
| Автор: CodeMonkey 14.1.2010, 19:46 |
| http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=1370 и http://wm-help.net/books-online/book/59464/59464-25.html#h6. Решение задач, особенно типа философов со сложной синхронизацией, я бы отложил на потом. Пока разберитесь с основами. Посмотрите демку в Delphi (сортировка). |
| Автор: Norfonzor 17.1.2010, 17:25 | ||
я пример нашел с много поточностью.
это не то что мне нужно. ПОМОГИТЕ КТО НИБУДЬ! это разве такая сложная задача? 4 процесса одновременно стартуют результат выполнения по очереди выполнится напишет в лейбл что он финишировал. |
| Автор: Демо 17.1.2010, 17:39 | ||
Это - не сложная.
Эта - сложная. |
| Автор: Norfonzor 17.1.2010, 18:16 | ||
вот что мне нужно было:
![]() |
| Автор: Демо 17.1.2010, 18:34 |
Вряд ли. Код с грубыми ошибками. Хуже - он даже не будет работать так, как задумывал автор, хотя он, видимо, об этом так и не узнал. Если бы сформулировал свои вопросы правильно, тебе бы уже давно помогли. |