网站推广主要包括建设期,苏州网站建设开发,营销型网站建设的原则,微山县建设.局网站1.分类描述
1.sleep() 休眠2.suspend() 暂停和 resume() 继续3.yield() 让步
就是我放弃本次执行#xff0c;但继续排队#xff0c;下一次有机会在执行。
4.wait() 和 notify() notifyAll()
注#xff1a;这两个方法#xff0c;属于Object类#xff0c;而不属于Thread…1.分类描述
1.sleep() 休眠2.suspend() 暂停和 resume() 继续3.yield() 让步
就是我放弃本次执行但继续排队下一次有机会在执行。
4.wait() 和 notify() notifyAll()
注这两个方法属于Object类而不属于Thread类wait()会先释放锁住的对象然后再执行等待的动作。由于wait()所等待的对象必须先锁住因此它只能用在同步化程序段或者同步化方法内否则会抛出异常IllegalMonitorStateException.
两个方法搭配使用wait()使线程进入阻塞状态调用notify()时线程进入可执行状态。wait()内可加或不加参数加参数时是以毫秒为单位当到了指定时间或调用notify()方法时进入可执行状态。
5.join()
也叫线程加入。是当前线程A调用另一个线程B的join()方法当前线程转A入阻塞状态直到线程B运行结束线程A才由阻塞状态转为可执行状态。
这种方法的使用场景比如我目前的处理无法继续了需要另一个状态或者数据的支持那么可以将支持的监听放到另一个线程中满足条件主线程继续子线程结束。
2.规律总结
线程就好比排队你有排队和放弃排队的权力但你没有立即执行的权力。
suspend和resume是最本质的线程控制方法其他的方法都是依据这两个方法定制起来的。
1.sleep(5000) 我现在suspend5000后执行resume2.yield()让步我正办理登机呢刚拍完照发现忘记带一个东西了这时候我让步但是我取完东西后会进行下一次排队。3.join 这里就叫”接合“吧我把我的线程suspend开启另一个线程他执行完的时候我在resume