Я делаю программу в java, которая раскачивает несколько автомобилей друг против друга. Каждый автомобиль - отдельная нить.
Когда автомобили завершают гонку, каждый из них называет этот метод. Я протестировал метод с различными скоростями таймера, и он работает нормально. Но я понимаю, что каждый поток обращается к переменной carsComplete, иногда в то же самое время (по крайней мере, в области, которую дает мне команда date).
Итак, мой вопрос: этот метод небезопасен?
public static String completeRace()
{
Date accessDate = new Date();
System.out.println("Cars Complete: " + carsComplete + " Accessed at " + accessDate.toString());
switch(++carsComplete)
{
case 1: return "1st";
case 2: return "2nd";
case 3: return "3rd";
default: return carsComplete + "th";
}
}