首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

第九章 Java多线程机制 05_线程同步_三

2012-09-17 
第九章 Java多线程机制 05_线程同步_3鱼欲遇雨:每日都学习一点,持之以恒,天道酬勤!不能用电脑时,提前补上!

第九章 Java多线程机制 05_线程同步_3

鱼欲遇雨:每日都学习一点,持之以恒,天道酬勤!不能用电脑时,提前补上!(2012.9.3)


线程同步


1   在java语言中,引入了对象互斥锁的概念,保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的标记,这个标记保证在任一时刻,只能对一个线程访问对象。
2   关键字synchronized来与对象的互斥锁联系。当某个对象synchronized修饰时,表明该对象在任一时刻只能由一个线程访问。
synchronized的使用方法:

// TestDeadLock.javapublic class TestDeadLock implements Runnable {public int flag = 1;static Object o1 = new Object();static Object o2 = new Object();public void run() {System.out.println("flag = " + flag);if(flag == 1) {synchronized(o1) {try{Thread.sleep(500);}catch (InterruptedException e){e.printStackTrace();}synchronized(o2) {System.out.println("1");}}}if(flag == 0) {synchronized(o2) {try{Thread.sleep(500);}catch (InterruptedException e){e.printStackTrace();}synchronized(o1) {System.out.println("0");}}}}public static void main(String args[]) {TestDeadLock td1 = new TestDeadLock();TestDeadLock td2 = new TestDeadLock();td1.flag = 1;td2.flag = 0;Thread t1 = new Thread(td1);Thread t2 = new Thread(td2);t1.start();t2.start();}}


热点排行