10. 11. 1. 线程同步 Test Synchronized method

 
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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值