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
*/
10. 11. 1. 线程同步 Test Synchronized method
最新推荐文章于 2020-12-23 11:33:37 发布