zoukankan      html  css  js  c++  java
  • 用synchronized实现互斥锁

    package seday10;
    /**
    * @author xingsir
    * 互斥锁
    * 当使用synchronized锁定多个代码片段,并且他们指定的同步监视器对象是同一个时,那么这些代码片段之间就是互斥的,
    * 多个线程不能同时在这些代码片段中运行。
    */
    public class syncDemo4 {

    public static void main(String[] args) {
    Boo boo = new Boo();//实例化
    Thread t1 = new Thread() {//线程一
    public void run() {
    boo.mA();//调用方法
    }
    };
    Thread t2 = new Thread() {//线程二
    public void run() {
    boo.mB();//调用方法
    }
    };
    t1.start();//启动
    t2.start();//启动

    }

    }
    class Boo{
    public synchronized void mA() {//synchronized锁定多个代码片段
    try {
    Thread thread =Thread.currentThread();//主线程
    System.out.println(thread.getName()+":mA方法正在执行...");//打印
    Thread.sleep(5000);//休眠5000毫秒
    System.out.println(thread.getName()+":mA方法执行完毕");//打印
    } catch (Exception e) {
    // TODO: handle exception
    }

    }

    public void mB() {
    synchronized(this) {//synchronized锁定多个代码片段
    try {
    Thread thread=Thread.currentThread();//主线程
    System.out.println(thread.getName()+":正在执行mB方法...");//打印
    Thread.sleep(5000);//休眠5000毫秒
    System.out.println(thread.getName()+":执行mB方法完毕!");//打印
    } catch (Exception e) {
    e.printStackTrace();

    }
    }
    }

    }

  • 相关阅读:
    ES6中对象新增方法
    ES6中字符串新增方法
    Laya 吐槽日志.
    汇编与反汇编工具
    Mac 软件下载地址
    红米手机 android4.4.4 root之路
    查看apk安装包信息
    文件搜索
    自动发表QQ空间说说
    批量格式化json
  • 原文地址:https://www.cnblogs.com/xingsir/p/12083814.html
Copyright © 2011-2022 走看看