這是幾年前在IBM'developerworks站點發布的多線程測驗,現在不可用。有關多線程的測驗
的quize在問: 1.什麼是與此代碼 2.如何改善這種代碼
這個問題我不知道確切的答案,這個測驗是什麼。
class HelloRun implements Runnable{
@Override
public void run() {
System.out.println(">>>" + Thread.currentThread().getName() + ": started");
if(Thread.currentThread().getName().equals("one")){
stepA();
} else {
stepB();
}
}
private synchronized void stepB() {
System.out.println("started B");
System.out.println("Do something");
System.out.println("end B");
}
private synchronized void stepA() {
System.out.println("started A");
System.out.println("Do something");
System.out.println("end A");
}
public static void main(String[] args) {
HelloRun helloRun = new HelloRun();
Thread t1 = new Thread(helloRun, "one");
Thread t2 = new Thread(helloRun, "two");
t1.start();
t2.start();
}
}
什麼答案?它會打印stepA()和stepB()打印語句。沒有必要同步,所以性能會很好。 – virendrao
你有跑嗎? @virendrao:System.out.println的性能? –
@Thomas我在說明爲什麼我們需要「同步」方法? – virendrao