1)Thread.sleep()/sleep(long millis)
当前线程睡眠/millis的时间(millis指定睡眠时间是其最小的不执行时间,因为sleep(millis)休眠到达后,无法保证会被JVM立即调度);sleep()是一个静态方法(static method) ,所以他不会停止其他的线程也处于休眠状态;线程sleep()时不会失去拥有的对象锁。 作用:保持对象锁,让出CPU,调用目的是不让当前线程独自霸占该进程所获取的CPU资源,以留一定的时间给其他线程执行的机会;
2)Thread.yield()
让出CPU的使用权,给其他线程执行机会、让同等优先权的线程运行,如果没有同等优先权的线程,那么yield()方法将不会起作用。
3)thread.join()
相当于把要调用join方法的线程也嵌套在当前的运行环境中,当前运行环境处于阻塞状态,直到调用join方法的线程执行完之后再继续往下执行!!
例子:
java多线程应用中常用的sleep、yield、join、wait、notify、notifyAll方法介绍
最新推荐文章于 2022-03-20 18:53:13 发布
本文介绍了Java多线程编程中常用的方法,包括Thread.sleep()用于线程睡眠,不释放锁;Thread.yield()让当前线程暂停,给同等优先级的线程执行机会;Thread.join()使调用线程等待目标线程结束后再继续执行。
摘要由CSDN通过智能技术生成