线程的6种状态
new(新生)
runnable(可运行)
blocked(被阻塞)
waiting(等待)
timed waiting(计时等待)
terminated(被终止)
守护线程 的唯一作用是为其他线程提供服务,守护线程应该永远不去访问固有资源。
singal()方法 解除等待
synchronized
将静态方法声明为synchronized也是合法的。如果调用这种方法,改方法获得相关的类对象的内部锁。例如,如果bank类的一个静态同步方法,那么当该方法被调用时,bank.class对象的锁被锁住,因此,没有其他线程可以调用同一个类的这个或人和其他的同步静态方法。
线程使用建议:
1.最好即不使用Lock/Condition也不使用synchronized关键字,再许多情况下你可以使用concurrent包中的机制
2.如果synchronized适合你的程序,请尽量使用
3.只有需要Lock/Condition时才使用独有特性
notifyAll()方法 解除那些再该对象上调用wait方法的线程的阻塞状态
notify()方法,随机选择一个再该对象上调用wait方法的线程,解除其阻塞状态。该方法只能再一个同步方法或者同步块种调用
监视器概念:可以再不需要程序员考虑如何加锁的情况下,就可以保证多线程的安全性。
Volatile关键字为实力与的同步访问提供了一个免锁机制
private volatile boolean done;
在以下3个条件下,域的访问是安全的
(1)域是final,并且在构造器调用完成之后被访问
(2)对域的访问由公有的锁进行保护
(3)域是volatile的
读写锁:
java.util..concurrent.locks包定义了两个锁类:ReentrantLock类和Reentrantreadwritelock类。如果很多线程从一个数据结构读取数据而很少线程修改其中数据的话,reentrantreadwritelock是十分有用的。
readlock() 得到一个可以被多个读操作共用的毒所,但会排斥所有写操作
writelock() 得到一个写锁,排斥所有其他的读操作和写操作
为什么弃用stop()方法,该方法终止所有未结束的方法,包括run方法。当线程被终止,立即释放被它锁住的所有对象的锁。这会导致对象处于不一致的状态。
为什么弃用suspend()方法。suspend挂起一个持有一个锁的线程,那么,改锁再恢复之前是不可用的。如果调用suspend方法的线程试图获得同一个锁,那么程序死锁。
分享到:
相关推荐
java线程 线程 教程 java线程教程 java线程学习资料 本教程有什么内容? 本教程研究了线程的基础知识— 线程是什么、线程为什么有用以及怎么开始编写使用线程的简单 程序。 我们还将研究更复杂的、使用线程的应用...
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...
JAVA多线程学习,提高JAVA性能,多线程并列. JAVA高级学习内容。
java线程学习笔记
Java 线程的学习和使用Java 线程的学习和使用
附带JAVA线程源代码,从代码中分析和学习java线程。
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-...
Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释 3 四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java...
Java线程模块Java线程之秒表新手学习Java线程模块时,利用Java中设置线程的暂停间隔,做的简易秒表
很好的线程学习资料.。含有部分源代码。
java线程.pdf java 学习java
主要是结合课本和视频学习了一下java多线程的用法,这个专利适合于初学者学习多线程知识。
NULL 博文链接:https://ralf-realman.iteye.com/blog/417416
Java中的多线程学习总结Java中的多线程学习总结
Java多线程是一块重要的内容,李兴华讲解的Java是一个很好的资源
Java线程学习好资料,JAVA多线程。
java多线程学习java多线程学习
java多线程学习-ftp上传
java多线程,来自java编程思想!内容很详细,适合于初学者。
Java线程入门,学习Java线程的好帮手