![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
Добрый вечер есть такая задача:Дан файл, содержащий текст произвольной длины и ключ длиной k символов. Выполнить шифрование этого текста по алгоритму, рассмотренному в задаче № 5 лабораторной работы № 1. Для решения задачи реализовать три потока:
- поток чтения информации из файла в буфер; - поток шифрования текста; - поток вывода шифрованного текста в результирующий файл. Могли бы вы помочь с раставлением захватов и освобождений мьютексов
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
![]()
вот мой код:
Код:
Единственное, что ограничивает полет мысли программиста-компилятор
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
![]()
Главная вещь, которую нужно понять - каждый мьютекс соответствует не потокам, а данным, которые не должны изменяться разными потоками одновременно. Поэтому достаточно одного мьютекса на все глобальные переменные.
Нужны ещё две переменные - счётчик прочитанного и счётчик зашифрованного. Если функция шифровки дошла до str[readCount], то она приостанавливается (Sleep(0)). Аналогично, функция записи приостанавливается, если дошла до str[cryptCount]. Мьютекс захватывается непосредственно перед чтением/записью глобальных переменных, и освобождается непосредственно после этого. Поэтому всю работу с глобальными данными желательно сгруппировать в коде максимально компактно. В общем, примерно так: Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
использование мьютексов | Sparky | Win Api | 5 | 07.04.2010 12:27 |
Использование подпрограмм | inferno fm | Общие вопросы Delphi | 2 | 19.09.2009 18:37 |
Использование while и while do | prikolist | Общие вопросы C/C++ | 20 | 06.04.2009 18:40 |
Использование обьектов | UberStas | Помощь студентам | 2 | 13.06.2008 18:55 |
использование TThread | amandra | Общие вопросы Delphi | 6 | 03.05.2008 03:13 |