Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синхронизацыя тредов, что именно 
:(
    Опции темы
Рамирос
Дата 15.2.2010, 19:05 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 4.2.2010

Репутация: -2
Всего: -3



Я так понял синхронизировать нада только ОБЬЕКТЫ которые нада ИЗМЕНЯТЬ???
Переменные сихронизировать ненада?
PM MAIL   Вверх
Zыыыыы
Дата 15.2.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 10.2.2010

Репутация: нет
Всего: нет



Тут подробно про синхронизацию потоков в java.
http://www.skipy.ru/technics/synchronization.html
И о каких переменных идет речь?
PM   Вверх
Рамирос
Дата 15.2.2010, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 4.2.2010

Репутация: -2
Всего: -3



Ясненько, нащот статеечки, познавательно.
А нащот переменных, то тут берутся переменные примитивных типов.
Нутак как нащот переменных их ненадо синхронизироваить??
нада токо методы или обьекты синхронизировать??
PM MAIL   Вверх
Zыыыыы
Дата 15.2.2010, 22:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 10.2.2010

Репутация: нет
Всего: нет



Вот общая форма оператора synchronized
Код

sупсhrопizеd(объект) { 
    // операторы, подлежащие синхронизации 
}


Здесь объект - это ссылка на синхронизируемый объект. Блок synchronized гapaнтирует, что вызов метода объекта произойдет только тоrда, коrда текущий поток успешно войдет в монитор объекта. 

Cинхронизированы могут быть только объекты. Переменные простых типов могут только объявляться и использоваться в блоке(или методе) synchronized, а при объявлении самого блока synchronized в качестве параметра может быть только объект(общение с которым мы собираемся регулировать).

Но можно воспользоваться модификатором volatile. Он указывается перед декларацией членов класса. Модификатор volatile показывает виртуальной машине, что данная переменная может быть изменена другими thread-ами.

Переменная, помеченная ключевым словом volatile, не будет кэшироваться в контексте thread-а, а доступ к ней будет осуществляться так, словно она заключена в блок synchronized. Volitile-переменная читается прямо из основной памяти, исключая регистры и локальную память. Следовательно, такая переменная гарантирует валидное значение для любого потока. 

Ключевое слово volatile может применяться как для объектов, так и для примитивных типов. Кроме того, переменная volatile может быть null. 

P.S. И все же надо гуглить.
PM   Вверх
Рамирос
Дата 16.2.2010, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 4.2.2010

Репутация: -2
Всего: -3



ага...
Zыыыыы, пасиба.

Тоесть переменная с модификатором  volatile никогда не будет исопльзоваться в один момент времени двумя или более нитями?? 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1089 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.