【发布时间】:2011-11-30 05:32:06
【问题描述】:
我正在用 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";
}
}
【问题讨论】:
标签: java multithreading pre-increment