java多线程中的join()、 sleep()、 yield()、 wait()函数

本文详细介绍了Java多线程中的join(), sleep(), yield(), wait()函数。join()使调用线程等待目标线程完成;sleep()使线程进入阻塞状态并释放锁,在指定时间后恢复执行;yield()让当前线程进入可执行状态,不释放锁;wait()则导致线程释放锁并进入等待池,等待其他线程通知。" 111515393,10297264,QT与VS读取txt文件内容到数组并调试显示,"['QT开发', 'C++编程', '文件操作', '数组处理', 'VS调试']
摘要由CSDN通过智能技术生成

join()

当线程t1调用t2.join()后,t1保持锁对象,等待t2执行完,t1进入可执行状态;

package thread;

public class JoinRunnable implements Runnable {
	
	Thread t1 ,t2;
	
	public JoinRunnable() {
		t1 = new Thread(this);
		t1.setName("t1");
		t2 = new Thread(this);
		t2.setName("t2");
	}

	@Override
	public void  run() { //如果加上synchronized锁标记,那么即使t1线程调用了t2.join();由于join不释放锁,t2还是无法按预期执行
             System.out.println(Thread.currentThread().getName()); 
             
             if(Thread.currentThread()==t1){	
            	 try {
            		System.out.println("t2.join();");
					t2.join();	/
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
             }
             
             for (int i = 0; i < 10; i++) {
            	 System.out.println(Thread.currentThread().getName()); 
			}
	}

	public static void main(String[] args){
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值