public class TestSynchronized {
int taskID;//任務ID
public static void print(String msg){//定義一個列印方法
System.out.println(Thread.currentThread().getName() + ":" + msg);
}
/**
* val:十萬牛頓每平米(英國壓力機關)
* VAL是自1980年代采用了Robert Gabillard教授發明的膠輪路軌系統技術,
* 由法國馬特拉公司(Matra)設計的一套專利軌道運輸系統。
* 當然,這與本程式無關!
*/
public synchronized void performATask(int val){//定義一個同步task任務
taskID = val;
print("之前:" + taskID);
try{
Thread.sleep(4000);//睡4秒,時間夠長了...
}catch(InterruptedException e){
//這裡沒内容
}
print("之後:" + taskID);
}
public static void main(String[] args) throws Exception{//把所有異常都抛出,狠....
final TestSynchronized tus = new TestSynchronized();
Runnable runA = new Runnable(){
public void run(){
tus.performATask(1);//注意:開始調它的方法了,傳ID為1
}
};
Thread ta = new Thread(runA,"線程A");//我再調用你,ID為1的那個啊
ta.start();
Thread.sleep(2000);//又一個睡了
Runnable runB = new Runnable(){
public void run(){
tus.performATask(2);//傳給你ID 2
}
};
Thread tb = new Thread(runB,"線程B");
tb.start();
}
}
/**
* 線程A:之前:1
線程A:之後:1
線程B:之前:2
線程B:之後:2
*/