|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.09.2011, 17:15 | #1 |
323787261
Пользователь
Регистрация: 19.12.2008
Сообщений: 49
|
Работа с потоками
В универе дали задание написать программу на любом языке.
Условие: Первый поток ищет текстовые строки в файле. Второй поток занимается подсчетом количества этих строк. Использовать события(CreateEvent). Не могу понять логику. Как разделить поиск текстовых строк и подсчет количества на два потока? Ведь поиск работает примерно по такой схеме: пока не конец файла начало читаем строку; если прочитанная стока содержит нужную строку счетчик = счетчик + 1; конец Все в одном цикле делается. Не понимаю что от меня хотят.
ICQ: 323787261
Email: pschegolevatykh@gmail.com |
15.09.2011, 18:25 | #2 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,814
|
от Вас хотят видеть не только общий алгоритм (он, кстати, правильный), а ещё и конкретный код и приложение, которое работало бы. ну, что-то вроде этого:
Код:
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
15.09.2011, 18:56 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
TStream тут не к месту совершенно.
тут нити нужны, то есть TThread. первый поток использует событие для того чтобы сообщить второму что он прочитал строку. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
15.09.2011, 19:38 | #4 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,814
|
Ну, образно выражаясь, человек спросил: как ловить зимой рыбу? Я образно ответил, что нужна наживка. А Вы мудро образно подсказали, что сначала нужно лунку просверлить во льду...
А чем TStream тут не подойдёт? С человека в начале года требуют программу, работающую с потоками!!! Я в эти потоки въехал только спустя 3 года, как ВУЗ закончил... И никто не помогал... А так хоть какое-то начало ему дал, пусть дальше сам покопает в этом направлении...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
15.09.2011, 20:03 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
потому что TStream не имеет отношение к многопоточности.
CreateEvent, события, по сути говоря синхронизирующий примитив. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
15.09.2011, 22:16 | #6 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
сначала создаются события:
Код:
Код:
Код:
грубо, но как-то так |
15.09.2011, 23:58 | #7 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
QuadroX
пускай первый поток занимается только чтением строк из файла и складирование их в очередь, а второй поток - выгребает из очереди данные, ищет совпадение, увеличивает счётчик.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
16.09.2011, 09:14 | #8 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
первый поток
пока не конец файла начало читаем строку; если прочитанная стока содержит нужную строку /////// счетчик = счетчик + 1; Извещаем второй поток (посылаем событие) повторить изещаем о заверщениии конец второй поток ждет события при получении если событие увеличить то увеличили счетчик если событие закончили то вывести и закончить
программа — запись алгоритма на языке понятном транслятору
|
17.09.2011, 17:30 | #9 | |
323787261
Пользователь
Регистрация: 19.12.2008
Сообщений: 49
|
Спасибо за разъяснения многие моменты стали понятны. Не понятно как можно завершить поток 2? Если он работает по таком принципу:
// поток 2 Код:
Цитата:
ICQ: 323787261
Email: pschegolevatykh@gmail.com |
|
20.09.2011, 07:06 | #10 |
323787261
Пользователь
Регистрация: 19.12.2008
Сообщений: 49
|
Поднимем тему.
ICQ: 323787261
Email: pschegolevatykh@gmail.com |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с потоками | session | Общие вопросы C/C++ | 6 | 21.06.2010 17:13 |
Работа с потоками | Яр|/||< (^_^) | Общие вопросы Delphi | 5 | 09.03.2010 08:23 |
Работа с потоками | den49 | Помощь студентам | 0 | 06.10.2009 14:52 |
Работа с потоками | Нюська | Общие вопросы Delphi | 3 | 27.05.2009 00:52 |
C++, работа с потоками | mat90x | Помощь студентам | 20 | 15.05.2008 22:20 |