0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 9
|
|
1 | |
Многопоточность17.08.2016, 09:48. Показов 487. Ответов 2
Метки нет (Все метки)
Добрый день, уважаемые гуру многопоточного программирование. Если Вас не затруднит, ответьте пожалуйста на несколько вопросов:
1 К примеру у меня есть какой-то объект типа Object многопоточное чтение которого происходит гораздо чаще, чем модификация и есть два варианта реализации: a) обычная переменная Object obj и ReadWriteLock соответственно на методы чтения и модификации б) volatile Object obj, на метод модификации - простой Lock, создание нового объекта и замены ссылки obj. Метод чтения без синхронизации(не считая записи-чтения volatile переменной) Какой из вариантов предпочтительнее и будет работать быстрее и почему? 2 Если я решил делать вариант 1.б и точно знаю, что мое приложение будет запускаться на сервере с несколькими процессорами архитектуры X86-64, то мог ли я вообще убрать volatile и нарушив тем самым JMM, но полагаясь на протоколы когерентности кешей процессоров? прочитает ли ядро 2го процессора измененые данные в ядре первого и даст ли это хоть какой-то прирост производительности?
0
|
17.08.2016, 09:48 | |
Ответы с готовыми решениями:
2
Многопоточность Многопоточность Многопоточность Многопоточность |
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
17.08.2016, 10:49 | 2 |
slippery, очень сомневаюсь что на этом форуме есть кто-то достаточно компетентный чтобы аргументировано ответить на этот вопрос.
Я бы на вашем месте занялся микробенчмаркингом разных способов решения (хотя это тоже не так просто как может показаться) и смотрел что даст лучший результат. Так же недавно видел на хабре статью Руслана Черемина про concurrency. Можете попробовать найти его контакты и задать вопрос ему.
0
|
18.08.2016, 01:03 | 3 |
1а будет лучше. И по читабельности и performance
2. Нет, volatile убирать нельзя. JIT будет спекулировать на отсутствии volatile
0
|
18.08.2016, 01:03 | |
18.08.2016, 01:03 | |
Помогаю со студенческими работами здесь
3
Многопоточность Многопоточность Многопоточность Многопоточность Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |