Thread proorityes:
highly system dependent
xp 系统有level,linux没有poriority 。 不能依靠priority来完成程序正确性。
如果有好几个高priority的不会blocked的线程,容易出现低poriority线程饥饿现象。
Daemon Thread
如果只剩daemon thread 虚拟机就会推出。(辅助线程,timer)
thread Group
g.activeGroup() , a.interrupt(); (executors 可以不用group关闭一组线程)
Handlers for Uncaught Exceptions
t.setDefaultUncaughtExceptionHandler(); 实现 UncauthtExceptionHandler Method
如果没有提供handler,则调用threadGroup的。
Lock (jdk1.5引入)
lock(); unlock();
lock对象对应多个condition对象
lock.newConditiong();
await()调用:
while( ! (ok of proceed)){ condition.await();};
带可能引起conditoin变化的地方调用,conditon.signalAll();
一个线程调用了condition对象的await方法,那么就把命运交给了其他线程。如果其他地方没有调用condition的唤醒,那么这个线程将会一直阻塞,可能导致死锁。
synchronize关键字:
每个object都有一个隐藏的lock对象,用synchronize关键字就是隐式调用lock()和unlock();
调用wait()和notifyAll()就是显示调用隐藏lock对象的条件对象的await()和signalAll();
隐式Lock对象和Condition对象的drawback:
!不能interrupt一个正在获取锁的线程。
!不能给定一个获取锁的timeout
!只有一个条件对象
!虚拟机执行锁映射的效率问题。
advantages:
虚拟机检测器可以报告lock和conditon的状况,对于调试deadlock来说很useful。
Monitor:
Monitor是面向对象的一种同步概念:
Monitor类只有private fields
所有的方法都会获得Monitor默认的一个锁
java的区别:
Fields不强制要求是private
不是所有方法都要求是synchronized
Synchronized Block
Synchronized (lock){
......
}
为了使用对象的锁。(遗留代码)
static 的方法也是可以同步的,这是他获取的是.class 对象的锁
Volatile Fields
private volatile boolean done; //这样就不用锁了,默认加锁。 影响性能
死锁:
公平锁:new ReentrantLock(true),不会出现饿死,严重影响性能,不推荐
锁测试和超时:
myLock.tryLock(long time, TimeUnit unit); //有助于消除死锁
读写锁:
rwl = new ReentrantReadWriteLock();
Lock readLock = rwl.readLock();
Lock writeLock = rwl.writeLock();
为什么不用stop和suspend
stop:会倒是对象处于不一致状态,刚执行一半。(不是有些人说的不会释放对象的锁,因为对象可以抛出ThreadDeath异常来释放所有的锁。
suppend:不会释放对象的锁,很容易造成死锁。
分享到:
相关推荐
2. **字节码(Bytecode)与虚拟机(JVM)**:Java程序被编译成字节码,这是一种中间表示,可以在任何支持Java的平台上运行。JVM执行这些字节码,实现了“一次编写,到处运行”的跨平台特性。 3. **内存模型和垃圾回收...
Core Java offers a total immersion approach for CC++ programmer wanting to learn java. The course will use JDK(Java Development Kit) and covers all the new language features. This course includes ...
Java 核心编程第9版(英文版),内含卷1和卷2以及书中的源代码。掌握java编程的权威经典书籍之一。 注:本书第2卷,我特意进行了编辑,删除了网络上存在版本长达几百页的代码页面,总页码现在只有703页了。 Volume...
代码示例请到此地址下载:【corejava8代码示例】http://download.csdn.net/source/2366281 1 AN INTRODUCTION TO JAVA Java As a Programming Platform The Java “White Paper” Buzzwords Simple Object Oriented...
java 核心技术 第八版 core 卷1 Core Java, 8th Edition Core Java. Volume I. Fundamentals, 8th Edition Core Java. Volume II. Advanced Features, 8th Edition 官方网站 http://horstmann.com/corejava.html ...
CayS.Horstmann等编著,公飞编译的《Java核心技术》(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍。第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版...
根据提供的文件信息,本书《Core Java 2, Volume II – Advanced Features》第五版是一本针对高级Java开发者的专业书籍,作者是Cay S. Horstmann 和 Gary Cornell,出版方为Prentice Hall PTR,出版日期为2001年12月...
总结起来,Core Java涵盖了许多关键概念,从JVM的运行机制到高级特性如多线程、反射和集合框架。理解这些知识点对于成为一个熟练的Java开发者至关重要。通过不断学习和实践,开发者可以充分利用Java平台的强大功能,...
Object-oriented programming (OOP) is a core feature of Java. This chapter introduces classes and objects, which are the building blocks of OOP. It explains how to define classes, create objects, and ...
CayS.Horstmann等编著,公飞编译的《Java核心技术》(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍。第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版...
CayS.Horstmann等编著,公飞编译的《Java核心技术》(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍。第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版...
Learn Java for Android Development, Third Edition, is an update of a strong selling book that now includes a primer on Android app development (in Chapter 1 and Appendix C, which is distributed in the...
Learn Java for Android Development, 3rd Edition, is an update of a strong selling book that now includes a primer on Android app development (in Chapter 1 and Appendix C, which is distributed in the ...
CayS.Horstmann等编著,公飞编译的《Java核心技术》(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍。第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版...
Chapter 2 delves into the core principles of object-oriented programming in Java. Topics covered include: - **Inheritance**: How to create a hierarchy of classes by inheriting properties and ...
[1] Java-基础知识和面向对象[完成] 注意事项[有用的信息]: 程式 : | | | | | | || | | 。 [2] Java-泛型,集合和异常处理[完成] 注意事项[有用的信息]: 程式 : 。 [3] Java-文件,I / O,序列化和联网[完成] ...
This book covers all the core java concepts of java programming language. It also touches some of its advanced concepts. It starts with talking about some of the basic concepts like data types, ...
3. 多线程(Multithreading):Java内置了对多线程的支持,允许程序同时执行多个任务,提高了程序的并发性能。 4. 异常处理(Exception Handling):Java的异常处理机制使得程序能够在遇到错误时优雅地处理,保证...
Core PYTHON Programming, 2nd Edition (epub 格式, Python 2.5) Python is an agile, robust, expressive, fully object-oriented, extensible, and scalable programming language. It combines the power of ...