JAVA线程之Object.wait(),Thread.sleep(),Thread.join(),Thread.yield()的区别

Object.wait()

主要在sychronized方法或者sychronized块中使用,使用该方法。当前线程进入waitset中,释放掉锁资源,直到被notify()方法被唤醒,进入锁池中竞争被加锁的资源

Thread.sleep()

当前线程让出cpu资源,不会影响锁,能够在程序的任何地方使用

Thread.join()

A,B两个线程  如果B.join(),而此时A线程没有结束,此时B线程会先执行,等待B结束(terminated),A继续执行

Thread.yield()

现在A线程正在执行,B线程等待A线程执行完再执行,此时调用了A.yield(),此时B线程就可以与A线程竞争执行资源,可能会出现A,B线程交替执行的情况

你可能感兴趣的:(java)