Java使用synchronized实现互斥锁功能示例
本文实例讲述了Java使用synchronized实现互斥锁功能。分享给大家供大家参考,具体如下:
代码
package per.thread; import java.io.IOException; public class Test { private int i = 0; private Object object = new Object(); public static void main(String[] args) throws IOException { Test test = new Test();Test.MyThread thread1 = test.new MyThread(); Test.MyThread thread2 = test.new MyThread(); thread1.start(); thread2.start(); } class MyThread extends Thread{ @Override public void run() { synchronized (object) {i++;System.out.println('i:'+i);try { System.out.println('线程'+Thread.currentThread().getName()+'进入睡眠状态'); Thread.currentThread().sleep(10000);} catch (InterruptedException e) { // TODO: handle exception}System.out.println('线程'+Thread.currentThread().getName()+'睡眠结束');i++;System.out.println('i:'+i); } } }}
实现
i:1线程Thread-0进入睡眠状态线程Thread-0睡眠结束i:2i:3线程Thread-1进入睡眠状态线程Thread-1睡眠结束i:4
分析
在thread1休眠之后,thread2没有立即执行,因为给object加了synchronized。
更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
相关文章:
1. python实现感知机模型的示例2. Python unittest单元测试框架实现参数化3. .net core 中 WebApiClientCore的使用示例代码4. springboot多模块包扫描问题的解决方法5. Android Studio编写AIDL文件后如何实现自动编译生成6. iOS UIScrollView和控制器返回手势冲突解决方法7. 深入浅出 妙用Javascript中apply、call、bind8. windows下安装PHP性能分析工具 xhprof 笔记9. 基于vue实现探探滑动组件功能10. 利用google trends来观察一下Java技术的发展趋势
