![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| DEMOVERSION |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.10.2005 Репутация: нет Всего: 1 |
Скажите правильно ли зделана synchronize-ция? Надо ли мне вообше ее? Надо синхронизуровать всю ф-цию?
Спасибо!
|
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
По идее все верно, только непонятно зачем. Если уж кто-то удалил, то второй запрос на удаление с тем же ИД просто ничего не удалит. Да и в случае использования SQL о целостности данных будет он заботится - незачем дергаться.
|
|||
|
||||
| Souljah |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.12.2004 Репутация: нет Всего: 7 |
имхо тут синхронизация вообще не нужна - ни один из приведенных методов не меняет состояние класса (поля)
|
|||
|
||||
| pvo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.10.2005 Где: Мск Репутация: 2 Всего: 7 |
DEMOVERSION
Насчет синхронизации - вроде она не нужна. И вопрос насчет работы с базой - она транзакции поддерживает? Если да, то приведенный код странный. |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
Практически у любой современной базы данных все запросы к ней являются синхронизированными. Так что можно и не мучится, но идеологически все верно.
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| anonymouse |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 18.8.2004 Репутация: нет Всего: 1 |
А я как обычно че-то не понял. Зачем синхронизовать если ети методы вызываются по порядку ? Синхронизация нужна только если метод будет вызываться из разных потоков.По этому идеологически это как раз написано не правильно.
--------------------
Много чего интересного... |
|||
|
||||
| Souljah |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.12.2004 Репутация: нет Всего: 7 |
почему идеологически верно?
executeUpdateSQL не меняет состояние класса, у переменных scope - метод, они существуют только в контексте конкретного потока. зачем синхронизировать? |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Идеологически не верно, здесь это не надо. Я имел в виду, что так конечно можно, только это напоминает в Москву из Питера через Одессу. |
|||
|
||||
| DEMOVERSION |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.10.2005 Репутация: нет Всего: 1 |
Код может и не идеальный но я к етому двигаюсь.
Я хочу немного добавить - ети ф-ции, ето часть веб-програмы(JSP)!!!! Просто з не знаю как будет работать если useroff будет много. БД - Access. Что будет если я буду редактировать а кто-то другой будет удалять даные из таблици? PS: в примере было только удаление, а еше есть add, remove, edit. All uses updateSQL function. Это сообщение отредактировал(а) DEMOVERSION - 2.11.2005, 14:05 |
|||
|
||||
| corewithin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 1.11.2005 Репутация: нет Всего: 1 |
не знаю чем вы руководствуетесь, когда говорите, что тут не нужна синхронизация...
она не нужна только в том случае, если это сингл приложение... в случае клиент-сервер приложения обязательна синхронизация на серверной стороне... |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 24 Всего: 144 |
Много - это скока? Если только не тысяча запросов в секунду, то самая простая стратегия синхронизации, она же самая действенная - это просто тупо сериализовать все входящие запросы. Я знаю, звучит как крамола, но если вдуматься, ничего крамольного в таком подходе нет - при одном, однако, условии: что каждый запрос будет отрабатываться без тормозов. Как этого добиться - вопрос отдельный, но я тебя уверяю, решается он гораздо легче, чем пытаться выстроить более или менее вменяемую стратегию синхронизации. Если интересно, почему просто сделать все датабазные методы synchronized - это не очень хорошая идея, то могу в общих чертах рассказать. Но чтобы разговор был предметным, мне нужно знать, что у тебя за приложение и какие пользовательские сценарии у тебя предусмотрены. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| pvo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.10.2005 Где: Мск Репутация: 2 Всего: 7 |
В целом согласен. Но: 1. Все-таки речь должна идти не о тысячах запрсов в секунду ... Интереса ради попробовал выполнить простой update (изменение одной строки в таблице, кот. имеет 2 индекса и содержит около 50 записей) на локальном Firebird - вместе с коммитом операция заняла от 20ms до 100ms. При работе с удаленной базой время увеличится - будет, скорее всего, от 100ms. ИМХО, тут стоит говорить о максимум 10-20 запросах в секунду. 2. синхронизация методов доступа к базе не спасет, если вдруг захочется запустить приложение в кластере. Или один и тот же код работает в 2 разных веб приложениях. Это сообщение отредактировал(а) pvo - 3.11.2005, 00:59 |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 24 Всего: 144 |
pvo, в соседнем топике идет обсуждение похожей темы. Поскольку мы в данном случае говорим не столько об использовании Java-примитивов синхронизации, сколько о вполне конкретной задаче синхронизации кода сервлетов/JSP (каковой вопрос выходит далеко за рамки просто синхронизации потоков), то я предлагаю продолжить обсуждение в подфоруме J2EE, тема JSP отдельная страничка - отдельный объект?.
|
|||
|
||||
![]()
|
| Правила форума "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. |