![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| RWander |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 4.5.2006 Где: Russia.Udm.Izhevs k Репутация: 1 Всего: 6 |
Здорово мужики! В общем, проблема в следующем. Необходимо написать многопоточную программу, которая использует два потока. Первый поток считывает символы из файла и подсчитывает количество каждого символа, второй поток случайным образом модернизирует файл. Необходимо предусмотреть механизм синхронизации, ибо эти два потока работают с одним и тем же файлом. Как это можно реализовать?
-------------------- Microsoft Certified Technology Specialist - ASP.NET Applications |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
Какой смысл в этих действиях, если их выполнять не последовательно? Как только файл будет изменен - потеряет актуальность информация о количестве символов. Если изменения зависят от количества символов - то их нелься начать до окончания подсчета. Поясни , что ты хочешь...
|
|||
|
||||
| RWander |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 4.5.2006 Где: Russia.Udm.Izhevs k Репутация: 1 Всего: 6 |
В общем, цитирую условие задачи: "потоки-читатели подсчитывают количество разных символов в файле и отображают найденные значения, потоки-писатели случайным образом модифицируют содержимое файла. Необходимо предусмотреть ведение и отображение протокола действий потоков, механизмы синхронизации должны выбираться самостоятельно, выбор необходимо обосновывать."
В этом то и проблема, я тоже не очень понимаю, как это эти два потока могут работать одновременно, один из которых подсчитывает символы, а другой их изменяет.. глупость какая-то. Это задание на л.р. Если эти два потока будут работать не одновременно, то о синхронизации и речи быть не может. -------------------- Microsoft Certified Technology Specialist - ASP.NET Applications |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Может один поток подсчитывает в цикле, а второй - время от времени изменяет файл... Тогда можно использовать просто блокировать общие данные (файл).
-------------------- I don't need a reason being who I am... |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Класс ReaderWriterLock в помощь, только одного его для решения задачи будет мало.
-------------------- ![]() |
|||
|
||||
| RWander |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 4.5.2006 Где: Russia.Udm.Izhevs k Репутация: 1 Всего: 6 |
-------------------- Microsoft Certified Technology Specialist - ASP.NET Applications |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |