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

    }
    }
    }

    }

  • 相关阅读:
    【译文】HTML5 Canvas的点击区域检测以及如何监听Canvas上各种图形的点击事件
    快速排序法精简理解
    数据结构--堆
    数据结构--哈希表
    数据结构--队列
    数据结构--栈
    数据结构--数组
    数据结构--链表
    算法的基本知识
    Arthas
  • 原文地址:https://www.cnblogs.com/xingsir/p/12083814.html
Copyright © 2011-2022 走看看