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

最新文章

  1. Open DS
  2. UML大战需求分析——阅读笔记05
  3. ebs R12.2启动报错"failed to start a managed process after the maximum retry limit"
  4. 关于C语言的一些trick
  5. EXTJS4自学手册——EXT基本方法、属性(mixins多继承、statics、require)
  6. Visual Studio 2015 速递(4)——高级特性之移动开发
  7. 模拟Modbus协议问题
  8. IEnumerable和IQueryable的区别
  9. 用C#操作vss、msbuild、reactor
  10. grep恢复误删除文件内容(转)
  11. 工厂方法模式与IoC/DI控制反转和依赖注入
  12. BestCoder Round #3HDU 4907
  13. HTTP请求响应过程 与HTTPS区别
  14. Android开源框架Volley(Google IO 2013)源代码及内部实现分析
  15. CSS3 [attribute^=value] 选择器
  16. Django异常问题之Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
  17. zabbix使用jmx监控tomcat
  18. Xamarin Essentials教程剪贴板Clipboard
  19. C#实现WinForm禁止最大化、最小化、双击标题栏、双击图标等操作的方法
  20. Excel函数之sumifs应用

热门文章

  1. 『无为则无心』Python函数 — 32、递归
  2. 安装uiautomator2 + python 自动化环境
  3. 学习git&github
  4. 自带排序 Array.sort()
  5. [ SQLAlchemy ] 关于dynamic的“一知半解”
  6. spring cloud --- Zuul --- 心得
  7. 安装Apache-storm-0.9.1-incubating图解教程
  8. LINUX学习-Mysql安装
  9. vue实现引用less,sass全局变量
  10. XSS-lab通过教程🐶