• 用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();

    }
    }
    }

    }

  • 相关阅读:
    xudyh的gcd模板
    [转]vi command summary
    Uva11538 排列组合水题
    html中的块与布局
    使用bootstrap-table插件
    2015 10月16日 工作计划与执行
    2015 10月15日 工作计划与执行
    2015 10月14日 工作计划与执行
    2015 10月13日 工作计划与执行
    2015 10月12日 工作计划与执行
  • 原文地址:https://www.cnblogs.com/xingsir/p/12083814.html
Copyright © 2020-2023  润新知