java线程join和yield有甚么不同
Java中的线程join()
和yield()
方法都属于线程调度方法,但是它们的作用和用法有所区分。join()
方法是用于等待一个线程的完成。当一个线程调用另外一个线程的join()
方法时,它会暂时被阻塞,直到被调用的线程履行终了。在join()
方法被调用的线程履行终了后,调用join()
方法的线程才会继续履行。这个方法通经常使用于在主线程中等待子线程完成任务。yield()
方法是用于暂停当前线程的履行,并让其他线程有机会履行。调用yield()
方法会让当前线程从运行状态转变成就绪状态,然后让线程调度器决定下一个要履行的线程。yield()
方法通经常使用于在多个线程之间进行调和,让其他线程有机会履行,从而提高系统的整体效力。
总结:
join()
方法用于等待线程的完成,而yield()
方法用于暂停当前线程的履行,让其他线程有机会履行。join()
方法是调用线程等待被调用线程履行终了,而yield()
方法是当前线程主动让出CPU资源,让其他线程履行。join()
方法是通过阻塞调用线程来实现等待,而yield()
方法是通过将当前线程从运行状态转变成就绪状态来实现让出CPU资源。join()
方法通经常使用于等待子线程完成任务,而yield()
方法通经常使用于线程之间的调和。TOP