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

    }
    }
    }

    }

  • 相关阅读:
    对于JavaScript中this关键字的理解
    使用DOM对表格进行增删
    sql server 存储过程
    sql sever 基础 练习题
    sql sever 基础 建表
    第十章 嵌入式的Linux调试技术
    第九章 硬件抽象层 HAL
    第八章 蜂鸣器驱动
    LED:控制发光二极管
    第一个Linux驱动程序:统计单词个数
  • 原文地址:https://www.cnblogs.com/xingsir/p/12083814.html
Copyright © 2011-2022 走看看