![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Pawl |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Доброго времени суток!
Опять вопрос по управлению потоками. Теперь задался целью сделать пример управления одним потоком другими. Задача следующая: есть несколько потоков, меняющих значение переменной value класса CheesyCounter. Контролирующий поток (в моем случае поток, в котором выполняется метод main), периодически проверяет значение value, и, если оно достигло определенного предела (константа limit в методе main), завершает потоки, изменяющие value. Потоки, которые меняют value, собраны в массив. Код классов:
- в цикле while метода main на каждой итерации создается новый поток - конечное значение value часто бывает больше заданного предела. Понятно, что это велосипед, буду благодарен, если покажете, каким должен быть классный байк. -------------------- В действительности всё совсем не так, как на самом деле |
||||||
|
|||||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Вобщем, переделал примерно так, как хотел. Нашел статью, сделал аналоги приостановки/запуска, как там написано. Сделанное приводить не буду, т. к. выглядит оно достаточно монстровито, да и вообще, похоже, управление остановкой / запуском нескольких потоков из одного лучше рассматривать на других задачах. Тему пока закрывать не буду, может, кто поделится своим опытом в этой области.
-------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Pawl |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Вот, нашел задачу, более приближенную к реальности: создание нескольких секундомеров в разных потоках с возможностью их приостановки, остановки и сброса. Приведу и приложу код решения (проект в Idea), посмотрите, пожалуйста, может, посоветуете, что можно улучшить?
Код секундомера:
Код управляющего класса (управление с консоли):
Это сообщение отредактировал(а) Pawl - 1.3.2013, 17:10 Присоединённый файл ( Кол-во скачиваний: 1 )
stopwatch.zip 13,42 Kb-------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |