![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Как счетный семафор реализовать через бинарный? У кого-нибудь есть идеи?
|
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Может быть использовать бинарный семафор для синхронизации доступа к измению счетчика счетного семафора? Т.е. с помощью бинарного семафора контролировать чтобы значение счетного семафора во времени мог изменить только один процесс.
Это сообщение отредактировал(а) MoonCat - 2.7.2006, 23:10 |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
т.е. вместо счетного семафора сделать просто переменную?
|
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
не то, что бы просто. Эта переменная должна отражать своим значением может ли еще кто-то получить доступ к какому-либо ресурсу. При этом, доступ счетчику счетного семафора должен быть синхронизирован. Иначе требуемой функциональности не достичь. Фактически, счетный семафор будет содержать счетчик (простая переменная) и средства для синхронизации изменения этого счетчика. Если есть бинарный семафор, то задача реализации счетного значительно упрощается. В Java можно использовать ключевое слово synchronized для установки бинарного семафора на метод или переменную. |
|||
|
||||
| Академик |
|
|||
|
Шустрый ![]() Профиль Группа: Участник... Сообщений: 114 Регистрация: 21.6.2006 Где: Столица РТ - Каза нь Репутация: -1 Всего: -13 |
Сорри что встреваю, но что за семафоры могут быть в Java?
--------------------
IDE := D2006; DB := Firebird 1.5 |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Счетный семафор можно примерно вот таким макаром реализовать:
Но в Java 5 появилась и собственная реализация того же самого: http://java.sun.com/j2se/1.5.0/docs/api/ja.../Semaphore.html. Вообще говоря, тот механизм синхронизации, который реализован в Java, больше напоминает монитор чем семафор, хотя какая в принципе разница - другого-то нет, а на его основе можно реализовать почти все. |
|||
|
||||
![]()
|
| Правила форума "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. |