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

  • 相关阅读:
    微擎 关注发送推荐消息
    修改 processor.php 文件,监听用户对该应用的消息
    微擎返回图文信息
    微擎客服消息发送的函数
    mui 底部导航栏的实现
    两张表的关联查询
    微擎 截取字符串
    webStorm中NodeJs 没有智能提示
    OpenCV 实现自己的线性滤波器
    OpenCV 基本的阈值操作
  • 原文地址:https://www.cnblogs.com/byron0918/p/4672000.html
Copyright © 2011-2022 走看看