Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 9
1

Многопоточность

17.08.2016, 09:48. Показов 487. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, уважаемые гуру многопоточного программирование. Если Вас не затруднит, ответьте пожалуйста на несколько вопросов:

1 К примеру у меня есть какой-то объект типа Object многопоточное чтение которого происходит гораздо чаще, чем модификация и есть два варианта реализации:

a) обычная переменная Object obj и ReadWriteLock соответственно на методы чтения и модификации

б) volatile Object obj, на метод модификации - простой Lock, создание нового объекта и замены ссылки obj. Метод чтения без синхронизации(не считая записи-чтения volatile переменной)

Какой из вариантов предпочтительнее и будет работать быстрее и почему?

2 Если я решил делать вариант 1.б и точно знаю, что мое приложение будет запускаться на сервере с несколькими процессорами архитектуры X86-64, то мог ли я вообще убрать volatile и нарушив тем самым JMM, но полагаясь на протоколы когерентности кешей процессоров? прочитает ли ядро 2го процессора измененые данные в ядре первого и даст ли это хоть какой-то прирост производительности?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2016, 09:48
Ответы с готовыми решениями:

Многопоточность
Мне нужно что бы сообщение System.out.println(String.format("%1$s будит парикмахера.",...

Многопоточность
Здравствуйте, что-то у меня не выходит ... Должно быть так А . . В А . . В А . . ...

Многопоточность
сделать Дизайн приложения, по крайней мере из двух нитей: - Один для обработки массива - Один для...

Многопоточность
Стоит задание с целью обучения управления потоками нужно посчитать ряд Лейбница или просто число...

2
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
17.08.2016, 10:49 2
slippery, очень сомневаюсь что на этом форуме есть кто-то достаточно компетентный чтобы аргументировано ответить на этот вопрос.

Я бы на вашем месте занялся микробенчмаркингом разных способов решения (хотя это тоже не так просто как может показаться) и смотрел что даст лучший результат. Так же недавно видел на хабре статью Руслана Черемина про concurrency. Можете попробовать найти его контакты и задать вопрос ему.
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
18.08.2016, 01:03 3
1а будет лучше. И по читабельности и performance

2. Нет, volatile убирать нельзя. JIT будет спекулировать на отсутствии volatile
0
18.08.2016, 01:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2016, 01:03
Помогаю со студенческими работами здесь

Многопоточность
Данный код должен в теории выдавать произвольное число (в определенном интервале). У меня четко...

Многопоточность
Здравствуйте, играюсь с многопоточностью. Подскажите пожалуйста дает ли она прирост в...

Многопоточность
Люди, не могли бы вы на пальцах объяснить, что такое пул потоков, а то перечитал тучу статей, а все...

Многопоточность
Доброго времени. Не могу сообразить как сделать: Задача: Методы класса Main вызываются из разных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru