前言:
而今小伙伴们对“java线程的方法有哪些”大体比较关注,咱们都想要分析一些“java线程的方法有哪些”的相关文章。那么小编同时在网上网罗了一些有关“java线程的方法有哪些””的相关文章,希望兄弟们能喜欢,各位老铁们快快来学习一下吧!hello,大家好,我是霖仔,很高兴你们能看我文章
今天我给大家说一下线程的基本方法
线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等。
1.线程等待(wait)
调用该方法的线程进入 WAITING 状态,只有等待另外线程的通知或被中断才会返回,需要注意的是调用 wait()方法后,会释放对象的锁。因此,wait 方法一般用在同步方法或同步代码块中。
2.线程睡眠(sleep)
sleep 导致当前线程休眠,与 wait 方法不同的是sleep 不会释放当前占有的锁,sleep(long)会导致线程进入 TIMED-WATING状态,而 wait()方法会导致当前线程进入 WATING状态.
3.线程让步(yield)
yield 会使当前线程让出CPU 执行时间片,与其他线程一起重新竞争CPU时间片。一般情况下,优先级高的线程有更大的可能性成功竞争得到CPU时间片,但这又不是绝对的,有的操作系统对 线程优先级并不敏感。
4.线程中断(interrupt)
中断一个线程,其本意是给这个线程一个通知信号,会影响这个线程内部的一个中断标识位。这个线程本身并不会因此而改变状态(如阻塞,终止等)
5.Join 等待其他线程终止
join() 方法,等待其他线程终止,在当前线程中调用一个线程的 join() 方法,则当前线程转为阻塞状态,回到另一个线程结束,当前线程再由阻塞状态变为就绪状态,等待 cpu 的宠幸.
6.线程唤醒(notify)
Object 类中的 notify() 方法,唤醒在此对象监视器上等待的单个线程,如果所有线程都在此对象上等待,则会选择唤醒其中一个线程,选择是任意的,并在对实现做出决定时发生,线程通过调用其中一个 wait() 方法,在对象的监视器上等待,直到当前的线程放弃此对象上的锁定,才能继续执行被唤醒的线程,被唤醒的线程将以常规方式与在该对象上主动同步的其他所有线程进行竞争。类似的方法还有 notifyAll() ,唤醒再次监视器上等待的所有线程.
标签: #java线程的方法有哪些