Java中Thread的初级认识
1、sleep 线程进入阻塞状态,此情况下调用线程实例终止函数interrupt(),可以引起InterruptedException,一般情况下如果sleep在循环内执行,将中断异常写在循环之外,保证线程顺利结束。
2、interrupt,中断一个线程,如果线程处于sleep状态,则引起InterruptedException
3、isInterrupted,判断一个线程是否被中断
4、currentThread,静态方法获取当前线程
5、await,notifyAll同步控制异常的解决:java.lang.IllegalMonitorStateException
引用:
首先你要了解这个异常为什么会抛出,这个异常会在三种情况下抛出: 1>当前线程不含有当前对象的锁资源的时候,调用obj.wait()方法; 2>当前线程不含有当前对象的锁资源的时候,调用obj.notify()方法。 3>当前线程不含有当前对象的锁资源的时候,调用obj.notifyAll()方法。
6、ReentrantLock 的lock,unlock+Condition等同于synchronized(object)。Condition.await(),Condition.signalAll()等同于(5)中的同步控制。异常处理也相同。