![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.10.2009
Сообщений: 121
|
![]() ![]() Если поставить Брейки в выделенных местах и затем выполнять пошагово, то выводит что-то в консоль, хотя в выполняемой строке нет и близко Write или writeln. Здесь потоки обращаются к массиву, что-то меняют в нём, и в конце выдается массив с которым поработали потоки. Кто-нибудь может помочь мне подробно разобраться в этом коде. Это полный код. ![]() Код:
Ищущий да обрящет
Последний раз редактировалось fredwriter; 09.10.2010 в 20:40. |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Насколько я вижу вывод на экран происходит в процедурах потоков, так что вполне нормально если ты ставишь бряк на главный поток, а остальные потоки то продолжать отработку должны без проблем и остановок - это же потоки.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 06.10.2009
Сообщений: 121
|
![]()
Щас поправлю Забыл места выделить
Кто-нибудь может попроще объяснить, что происходит в программе, а то я понимаю её урывками: там понимаю, тут не понимаю. как в кино. Понятно, что потоки что-то делают с массивом. Что такое семафор - это объект синхронизации, который следит за тем, чтобы к общему ресурсу не смогли одновременно получить доступ более n потоков. А как в этой программе это работает. Событие - это объект синхронизации, который позволяет потоку продолжить работу при наступлении определенного события. Помогите разобраться. По отдельности каждая процедура вроде понятно, что делает, кроме двух функций, одна Proc1 - функция добавляющих потоков(что значит добавляющих и что она делает), а вторая Proc2 - процедура вынимающего потока(аналогично). И в целом что делает программа не понятно.
Ищущий да обрящет
Последний раз редактировалось Stilet; 09.10.2010 в 22:24. |
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.10.2009
Сообщений: 121
|
![]()
Ну, может быть, с утреца, как нибудь, или днём?
Ищущий да обрящет
Последний раз редактировалось fredwriter; 10.10.2010 в 05:09. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
А что Вы собственно, не можете понять? Программа моделируюет одновременную конкурирующую запись в общий ресурс (в Вашем случае это массив Q ) для того, чтобы не возникло deadlock'ов в программе реализован механизм семафоров (так же, как и в ядре Windows - процесс перед записью проверяет семафор, если он свободен, устанавливает признак, что ресурс занят, производит запись и после осовобождает семафор (позволяя другим конкурирующим потокам осуществлять запись в общий ресурс). Скажите, а Ведь Вы не сами писали эту программу?! |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 06.10.2009
Сообщений: 121
|
![]()
Если бы я писал её сам, я бы не спрашивал как она работает. Для написания такой программы мне не хватает знаний видимо.
Ищущий да обрящет
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Коментарии к программе | savra | Помощь студентам | 4 | 13.01.2010 01:32 |
Помогите разобраться в программе... | Tee Jay | Помощь студентам | 0 | 25.06.2009 19:20 |
помогите разобраться в программе | iwaniwan | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 15.04.2009 19:38 |
Помогите разобраться в программе | Gekada | Общие вопросы C/C++ | 1 | 09.12.2008 19:23 |