1 - (рекомендация от ментора): В method0 используется только одна операция присваивания и она атомарная
А что с ней не так ну атомарная она и что? ну одна операция (там данные перезаписываются? - Да!) значит нужен Synchronized
да и там вызываем метод 3 который что то возвратит а на это уже тратим время.
2 - Тоже не очень понимаю как по мне - то здесь есть перезапись переменной значит нужно Synchronized
5 - Здесь я понимаю свою ошибку.
6 - (рекомендация от ментора): В method6 используется несколько операций и также он изменяет общие ресурсы, поэтому метод нужно синхронизировать.
Не вижу ничего экстремального?
public String method6(int param2) { // принимаем на вход целое
System.out.println("Thinking...."); // вывод в Консоль текст
method7(5e-2); // вызов метода 7 который вернет переданный параметр в String`е
sb = new StringBuilder("Got it!."); // еще один и тот же текст которые не меняется
return sb.toString(); // возвращаем тот же текст
// ЧТО ЗДЕСЬ НЕ ТАК?
}
String method7(double param2) {
return "" + param2;
}package com.javarush.task.task17.task1716;
/*
Синхронизированные методы
*/
public class Solution {
private double param = Math.random();
private StringBuilder sb = new StringBuilder();
private synchronized void method0() {
Double d = method3();
}
protected void method1(String param1) {
Solution solution = new Solution();
solution.method0();
}
public synchronized void method2(int param1) {
param1++;
}
synchronized double method3() {
double random = Math.random();
param += 40.7;
return random + param;
}
private synchronized void method4() {
sb.append(1).append(1).append(1).append(1);
}
protected synchronized void method5(String param2) {
new StringBuffer().append(param2).append(param2).append(param2);
}
public String method6(int param2) {
System.out.println("Thinking....");
method7(5e-2);
sb = new StringBuilder("Got it!.");
return sb.toString();
}
String method7(double param2) {
return "" + param2;
}
public static void main(String[] args) {
}
}