设为首页 加入收藏

TOP

java面向对象编程笔记:多线程的相关事项(13)
2014-11-18 13:03:22 】 浏览:5004
Tags:java 面向 对象 编程 笔记 线程 相关 事项

  1.关于线程安全类:不可变类总是线程安全的,而可变类的线程安全往往以降低并发性能为代价,注意只对可能导致资源竞争的代码进行synchronized,并且在需要提供单线程和多线程两个环境下通过继承和覆盖而在内部建立采用同步机制的内部类。


  2.以下情况持有锁的线程会释放锁:


  执行完同步代码块


  执行同步代码块中,遇到异常导致线程终止。


  执行同步代码块中,执行了锁对象所属的wait()方法。


  执行同步代码块中,执行了Thread.sleep()方法,当前线程线程放弃CPU,开始睡眠,但是不会释放锁。


  执行同步代码块中,执行了Thread.yield()方法,当前线程线程放弃CPU,将执行权给线程优先级大于等于其的线程,但是不会释放锁。


  执行同步代码块中,其他线程执行了当前线程对象的suspend()方法(该方法已经被废弃),当前线程线程放弃CPU,但是不会释放锁。


  3.关于死锁:


  JVM不监测也不试图避免死锁,因此要自己保证不出现死锁状态。一个通用的经验法则是当几个线程都要访问共享资源A、B和C时,保证使每个线程按照同样的顺序去访问它们。


  编辑特别推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机二级辅导:Java线程新特征(.. 下一篇java面向对象编程笔记:数组的相关..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目