Java使用synchronized实现互斥锁功能示例
本文实例讲述了Java使用synchronized实现互斥锁功能。分享给大家供大家参考,具体如下:
代码
packageper.thread;
importjava.io.IOException;
publicclassTest{
privateinti=0;
privateObjectobject=newObject();
publicstaticvoidmain(String[]args)throwsIOException{
Testtest=newTest();
Test.MyThreadthread1=test.newMyThread();
Test.MyThreadthread2=test.newMyThread();
thread1.start();
thread2.start();
}
classMyThreadextendsThread{
@Override
publicvoidrun(){
synchronized(object){
i++;
System.out.println("i:"+i);
try{
System.out.println("线程"+Thread.currentThread().getName()+"进入睡眠状态");
Thread.currentThread().sleep(10000);
}catch(InterruptedExceptione){
//TODO:handleexception
}
System.out.println("线程"+Thread.currentThread().getName()+"睡眠结束");
i++;
System.out.println("i:"+i);
}
}
}
}
实现
i:1
线程Thread-0进入睡眠状态
线程Thread-0睡眠结束
i:2
i:3
线程Thread-1进入睡眠状态
线程Thread-1睡眠结束
i:4
分析
在thread1休眠之后,thread2没有立即执行,因为给object加了synchronized。
更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
