文章作者 100test 发表时间 2010:01:01 12:22:11 来源 100Test.Com百考试题网
1.关于线程安全类:不可变类总是线程安全的,而可变类的线程安全往往以降低并发性能为代价,注意只对可能导致资源竞争的代码进行synchronized,并且在需要提供单线程和多线程两个环境下通过继承和覆盖而在内部建立采用同步机制的内部类。
2.以下情况持有锁的线程会释放锁:
执行完同步代码块
执行同步代码块中,遇到异常导致线程终止。
执行同步代码块中,执行了锁对象所属的wait()方法。
而以下情况线程是不会释放锁的:本文来源:百考试题网
执行同步代码块中,执行了Thread.sleep()方法,当前线程线程放弃CPU,开始睡眠,但是不会释放锁。
执行同步代码块中,执行了Thread.yield()方法,当前线程线程放弃CPU,将执行权给线程优先级大于等于其的线程,但是不会释放锁。
执行同步代码块中,其他线程执行了当前线程对象的suspend()方法(该方法已经被废弃),当前线程线程放弃CPU,但是不会释放锁。
3.关于死锁:
JVM不监测也不试图避免死锁,因此要自己保证不出现死锁状态。一个通用的经验法则是当几个线程都要访问共享资源A、B和C时,保证使每个线程按照同样的顺序去访问它们。
编辑特别推荐:
java面向对象编程笔记:面向对象开发方法(1)
java面向对象编程笔记:UML建模语言初步(2)
java面向对象编程笔记:Java语言初步(3)
java面向对象编程笔记:Java语言初步(4)
java面向对象编程笔记:流程控制(5)
java面向对象编程笔记:继承和多态(6)
java面向对象编程笔记:修饰符(7)
java面向对象编程笔记:接口(8)
java面向对象编程笔记:对象生命周期(9)
java面向对象编程笔记:线程放弃运行态(10)
java面向对象编程笔记:线程放弃运行态(11)
java面向对象编程笔记:计数器(12)
相关文章 Java命令模式:设计模式的四人帮计算机等级考试Java基础学习中必须清楚的一些问题计算机等级考试Java中静态变量的适用场景计算机等级考试java面向对象编程笔记:数组的相关事项(14)计算机等级考试java面向对象编程笔记:多线程的相关事项(13)计算机等级考试Java每日一题系列(6)计算机等级考试Java每日一题系列(5)计算机等级考试Java每日一题系列(4)计算机等级考试Java每日一题系列(3)计算机等级考试 澳大利亚华人论坛 考好网 日本华人论坛 华人移民留学论坛 英国华人论坛