多线程中yield()和join()方法的对比

1.yield():调用此方法的线程,释放当前cpu的执行权

class SubTread extends Thread{
	@Override
	public void run() {
		for(int i=1;i<=100;i++){
			System.out.println(Thread.currentThread().getName()+":"+i);
		}
	}	
}
public class TestThread {
	public static void main(String[] args) {
		SubTread st1 = new SubTread();
		st1.setName("子线程1");
		st1.start();
		Thread.currentThread().setName("==========主线程");
		for(int i=1;i<=100;i++){
			System.out.println(Thread.currentThread().getName()+":"+i);
			if(i % 10 ==0){
				Thread.currentThread().yield();
			}
		}
	}
}

结果:

==========主线程:1
子线程1:1
==========主线程:2
子线程1:2
==========主线程:3
子线程1:3
子线程1:4
子线程1:5
子线程1:6
子线程1:7
子线程1:8
子线程1:9
子线程1:10
子线程1:11
==========主线程:4
子线程1:12
子线程1:13
子线程1:14
==========主线程:5
子线程1:15
==========主线程:6
子线程1:16
==========主线程:7
子线程1:17
==========主线程:8
子线程1:18
子线程1:19
==========主线程:9
子线程1:20
==========主线程:10
子线程1:21
子线程1:22
==========主线程:11
子线程1:23
==========主线程:12
子线程1:24
==========主线程:13
子线程1:25
子线程1:26
==========主线程:14
子线程1:27
==========主线程:15
子线程1:28
==========主线程:16
子线程1:29
==========主线程:17
子线程1:30
==========主线程:18
子线程1:31
==========主线程:19
子线程1:32
==========主线程:20
子线程1:33
==========主线程:21
子线程1:34
==========主线程:22
子线程1:35
==========主线程:23
子线程1:36
==========主线程:24
子线程1:37
==========主线程:25
子线程1:38
子线程1:39
子线程1:40
==========主线程:26
==========主线程:27
==========主线程:28
==========主线程:29
==========主线程:30
==========主线程:31
==========主线程:32
==========主线程:33
子线程1:41
子线程1:42
子线程1
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值