![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| barin_Student |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: 1 Всего: 2 |
У меня есть довольно большой(неудобно на форуме смотреть) класс для примера , вот там синхронизация нужна , а как правильно ее выполнить не могу найти Faq , вот и у вас хотел бы спросить.(могу привести тот класс). Просто когда тупо везде втыкаю синхронизацию , поток останавливается без ошибок , просто висит и все.
-------------------- Нехорошо блин!!! |
|||
|
||||
| barin_Student |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: 1 Всего: 2 |
вот кусок класса внутри которого устраиваивается синхронизация , вот если убрать закаментирование то получается так что просто класс повисает.
Классы требуещие синхронизации есть демоны.
-------------------- Нехорошо блин!!! |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Точно. this.SyncBeeline - класс этого объекта наледует Thread? Если так, то предположу, что вы пытаетесь реализовать асинхронную посылку SMS? Вобщем, по тому коду, что вы привели, ничего сказать нельзя, только предположения. Покажите код класса объекта this.SyncBeeline, особенно где есть synchronized(this) или this.wait() Если это потоки, покажите основной метод, в котором они работают (обычно run()). PS: В одиночку трудитесь? Ваш код надо улучшать... |
|||
|
||||
| barin_Student |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: 1 Всего: 2 |
Делаю один и заканчиваю , для поключения к SMSC использую синхронную часть , а мой SMSC работает асинхронно(так надо), синхронизация требовалась , для того чтоб не преравать к примеру получения ответа на запрос , потем отправления другого запроса(дожадаться окончания действия), решил все без синхронизации , чуть флаги изменил и все.
Насчет кода , да знаю есть куча клякс и требует оптимизации. Со временем прийду к полному пониманию язака ява. А то я его уже месяца 4 изучаю , а чтоб написать и точно знать как что сейчас пойдет , вот к этому я еще не пришел. -------------------- Нехорошо блин!!! |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 4 Всего: 11 |
synchronized ждёт, пока объект-аргумент освободится, потом захватывает его и проходит дальше. пока объект захвачен, другие потоки ждут у входа своих synchronized.
То есть, synchronized должен огораживать использование того объекта, который нельзя использовать параллельно. Это не обязательно тот объект, который захватывается и освобождается. Он может служить лишь "светофором" и ограничивать "езду" по другому объекту -- "перекрёстку". Если synchronized стоит перед методом, то захватывается весь объект, к которому принадлежит этот метод. Если у Вас всё зависает, значит образовалась "пробка". Например, несколько потоков ждут освобождения каких-то объектов, которые не могут быть освобождены, так как отвечающие за это потоки тоже ждут. Старайтесь использовать как можно меньше объектов синхронизации. |
|||
|
||||
![]()
|
| Правила форума "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. |