![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| cube |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: 2 Всего: 3 |
Наверное у всех когда-то наступают проблемы с синхронизацией, пишу проект, пишу один, времени улучшать что-то как всегда нет, но наступает время когда делать это приходится...
Мой проект клиент-сервер rmi приложение, на сервере есть "объекты" и "списки объектов" которыми я "орудую" с клиента. Список объектов (в данном случае список услуг)
Сам объект (в данном случае услуга)
все нормально работает, но если обратить внимание например на метод removeDB() то там следующий код он работает неправильно (если несколько клиентов одновременно удаляют объект типа услуга) list.removeStmt.setInt(1, getID()); list.removeStmt.executeUpdate(); как синхронизировать методы, или поля этих классов, чтобы пока не произойдет удаления объекта, другой клиент "ждал" доступа к удалению |
||||
|
|||||
| _sten_ |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 29.9.2006 Репутация: нет Всего: 3 |
ну можно попробовать синхронизировать по ServerImpl.getInstance() типа
если конечно ServerImpl.getInstance() - синголтон, если нет то добавь просто какое то статическое поле и синхронизируй по нем, будет что вроде:
в обще синхронизировать поле нельзя... Есть только синхронизированные блоки, типа:
где в скобках указывается объект монитор которого будет захвачен. Два потока не могут захватить монитор одного объекта одновременно - второй будет ждать, пока первый не выйдет из блока. Можно также синхронизировать метод добавив перед именем synchronized, но это все равно что синхронизироваться по this В обще в твоем случае возможно синхронизироваться надо в базе, типа select for update или что то мудрить с уровнями изоляции транзакций --------------------
WARNING: Condition 'to_be || !to_be' is always 'true' ! |
||||||
|
|||||||
![]()
|
| Правила форума "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. |