您的位置:首页 > 其它

关于thread的几点认识

2014-06-16 13:08 232 查看


线程生命周期




线程api详解

线程执行

start() - 使该线程开始执行,java虚拟机调用其run方法。

run() -   如果该线程是使用独立的Runnable运行对象构造的,则调用其Runnable对象的run方法;否则该方法不执行任何操作并返回。

线程阻塞

sleep() -  让当前正在执行的线程休眠指定的时间(暂停执行)

yield() -  让出cpu的使用权,给其他的线程执行机会,让同等优先权的线程可以执行(但并不保证当前线程会被JVM再次调度,使该线程重新进入Running状态),如果没有同等优先权的线程,那么yield方法将不起作用。

线程生命周期

isAlive() - 判断当前线程是否还活着

join() - 使用该方法的线程会在此执行完毕之后再往下继续执行。眼睁睁的看着她死去,什么都不做。

线程交互

wait() - 当一个线程执行到wait()方法时,他就进入到一个和该对象相关的等待池(Waiting Pool)中,同时失去了对象的锁---暂时的,wait后还要返还对象锁。当前线程必须拥有当前对象的锁,如果当前线程不是此锁的拥有者,会抛出IllegalMonitorStateException异常,所以wait()必须在synchronized block中调用。

notify()/notifyAll() -  唤醒在当前对象等待池中等待的第一个线程/所有线程。notify()/notifyAll()也必须拥有相同对象锁,否则也会抛出IllegalMonitorStateException异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: