软件编程
位置:首页>> 软件编程>> java编程>> Java使用synchronized实现互斥锁功能示例

Java使用synchronized实现互斥锁功能示例

作者:Z_DZ  发布时间:2022-10-20 00:47:49 

标签: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:2
i:3
线程Thread-1进入睡眠状态
线程Thread-1睡眠结束
i:4

分析

在thread1休眠之后,thread2没有立即执行,因为给object加了synchronized。

更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

来源:https://blog.csdn.net/qq_38006520/article/details/82935191

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com