![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 18.06.2010
Сообщений: 14
|
![]()
в процессе создано два дополнительных потока, первый поток заполняет массив из пяти чисел одинаковыми значениями, второй поток выводит этот массив на экран:
Код:
Запустив программу, мы обнаружим, что в некоторых строках массив имеет различные значения. Это говорит о том, что работа потока «Thread 1» прерывается потоком «Thread 2» на середине заполнения массива. Для решения данной проблемы воспользуемся механизмом критических секций. Для этого необходимо подключить библиотеку windows.h и объявить использование критических секций: Код:
Код:
P.S из отдельных частей программы нужно составить одну. что-то у меня никак не получается с критическими секциями. есть вариант, но он не работает Код:
Последний раз редактировалось Stilet; 18.06.2010 в 13:14. |
![]() |
![]() |
#2 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
![]()
Что именно не работает?
|
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
![]() Код:
Ну через технологию критических секций я поправил. Главное - это усыпить главный поток, дать начать работать второму потоку, забрать секцию ему, после работы ее освободить и усыпить поток так же на такое же время, дать главному потоку время вывести, и опять усыпить главный - и так до бесконечности - будет последовательная работа потоков. Время сна главного потока в начале совместной работы с другим потоком и впоследствии их работы разное! Это важно, потому что если оно будет одинаковое (или первое будет больше чем второе), то произойдет рассинхронизация, начнет проскальзывать непоочередное выполнение, num будет инкрементироваться по два раза и в общем полный хаос) Последний раз редактировалось capta1n; 19.06.2010 в 00:19. |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.06.2010
Сообщений: 14
|
![]()
capta1n, спасибо вам большое за то, что уделили время.
однако, при компиляции у меня почему-то возникают ошибки ![]() ошибки вашего кода: CRITICAL_SECTION command not found int command not found line 9-syntax error near unexpected token 'num(0' line 9-int num(0); при компиляции моего кода ошибки аналогичные!! не пойму в чем причина. пишу не в вижуал С++, потому что нет библиотеки windows.h. препод посоветовал писать в minGW msys. это прототип юникса и именно он выдает такие ошибочки ![]() ![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.06.2010
Сообщений: 14
|
![]()
Carbon, у меня не получается реализовать механизм критических секций. я вообще не знаю работает ли мой код, потому что при компиляции в minGW msys выдает ошибки. я не могу создать даже исполняемый файл.
ошибки при компиляции моего кода: CRITICAL_SECTION command not found line 6-syntax error near unexpected token &c и какая-то ошибка в инициализации критической секции |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
![]()
я бы нерабочий код не выложил)
компилировал в Visual Studio 2010, Да и в 2008 должна пойти вообще взял-то я ваш код, я не знаю, почему он не компилируется |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 18.06.2010
Сообщений: 14
|
![]()
дома все равно не работает.попробую в универе еще
![]() ![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с потоками | Яр|/||< (^_^) | Общие вопросы Delphi | 5 | 09.03.2010 08:23 |
Работа с потоками | den49 | Помощь студентам | 0 | 06.10.2009 14:52 |
Работа с потоками | Neymexa | Общие вопросы .NET | 16 | 23.04.2009 17:42 |
работа с потоками | Alex_Pro | Общие вопросы .NET | 1 | 01.07.2008 07:25 |
C++, работа с потоками | mat90x | Помощь студентам | 20 | 15.05.2008 22:20 |