Нестабильный x синхронизированный подход: какой параллельный код Java безопаснее и правильнее? Или они эквивалентны? ⇐ JAVA
-
Anonymous
Нестабильный x синхронизированный подход: какой параллельный код Java безопаснее и правильнее? Или они эквивалентны?
Я всегда об этом забываю. Я думаю, что оба кода верны. А может и нет. Я считаю, что тот, который использует ключевое слово Synchronized, является «более правильным», но и ключевого слова Летучий может быть достаточно.
Есть комментарии по поводу того, какой код лучше и/или правильнее?
публичный статический класс MyThread расширяет поток { частное изменчивое логическое значение isRunning = true; // изменчивый @Override общественный недействительный запуск () { в то время как (isRunning ()) { // занят... } } public void stopMe() { // несинхронизировано isRunning = ложь; } public boolean isRunning() { // несинхронизировано возврат isRunning; } } публичный статический класс MyThread расширяет поток { частное логическое значение isRunning = true; // энергонезависимый @Override общественный недействительный запуск () { в то время как (isRunning ()) { // занят... } } publicsynced void stopMe() { // синхронизировано isRunning = ложь; } общедоступный синхронизированный логический isRunning() { // синхронизирован возврат isRunning; } }
Я всегда об этом забываю. Я думаю, что оба кода верны. А может и нет. Я считаю, что тот, который использует ключевое слово Synchronized, является «более правильным», но и ключевого слова Летучий может быть достаточно.
Есть комментарии по поводу того, какой код лучше и/или правильнее?
публичный статический класс MyThread расширяет поток { частное изменчивое логическое значение isRunning = true; // изменчивый @Override общественный недействительный запуск () { в то время как (isRunning ()) { // занят... } } public void stopMe() { // несинхронизировано isRunning = ложь; } public boolean isRunning() { // несинхронизировано возврат isRunning; } } публичный статический класс MyThread расширяет поток { частное логическое значение isRunning = true; // энергонезависимый @Override общественный недействительный запуск () { в то время как (isRunning ()) { // занят... } } publicsynced void stopMe() { // синхронизировано isRunning = ложь; } общедоступный синхронизированный логический isRunning() { // синхронизирован возврат isRunning; } }
Мобильная версия