zoukankan      html  css  js  c++  java
  • java多线程编程(二)

    1. wait 和 sleep 区别?

      1.wait可以指定时间也可以不指定,sleep必须指定时间。

      2.在同步中时,对cpu的执行权和锁的处理不同。
         wait:释放执行权,释放锁。
         sleep:释放执行权,不释放锁。

    2. 多线程中的锁的概念

        可以这么形象的去理解锁的概念:代码块就相当于"一扇门",如果一个人(线程)进去了这扇门(代码块),并将门锁上了,那么此时其他人就进不去了,除非这个人在里  面做完了一些事情(执行完代码块逻辑)之后将锁打开,其他人才有机会去开门-->上锁-->办事-->解锁.

        最形象的例子就是 “火车上的卫生间”,哈哈

        锁(synchronized)有两种使用方式:

        方式一:同步代码块

      synchronized(this)
      {
        if(num>0)
        {
          try{Thread.sleep(10);}//睡着了,但不释放锁,其他线程还是进不来

          catch (InterruptedException e){}
          System.out.println(Thread.currentThread().getName()+".....obj...."+num--);
        }
      }

      方式二:同步函数

      public synchronized void show()
      {
        if(num>0)
        {
          try{Thread.sleep(10);}catch (InterruptedException e){}
          System.out.println(Thread.currentThread().getName()+".....function...."+num--);
        }
      }

  • 相关阅读:
    Eclipse版本
    关于软件版本的说明
    JDK
    java2的三个版本
    vue 自定义下拉选择table组件
    网络图片转base64
    关于重力加速计文章
    整理 node-sass 安装失败的原因及解决办法
    kurentoClient
    es2020
  • 原文地址:https://www.cnblogs.com/byron0918/p/4672000.html
Copyright © 2011-2022 走看看