Java多线程编程-常用方法-join yield方法

涎涎原创约 427 字大约 1 分钟...JavaJava

245-Java多线程编程-常用方法-join & yield方法.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

概念

示例代码

package com.tencent.chapter04.常用方法;

/**
 * join:导致当前线程等待,直到调用该方法之前的所有线程执行结束
 */
public class JoinDemo {

	public static void main(String[] args) {
		Thread4 t1 = new Thread4(1,10);
		t1.start();
		
		Thread4 t2 = new Thread4(11,20);
		t2.start();
		
		try {
			t2.join();//让t2插队,让t2之前的所有线程先执行完成,后续的代码才可以继续执行
		} catch (InterruptedException e1) {
			e1.printStackTrace();
		}
		
		
		for (int i = 100; i <= 110; i++) {
			System.out.println(Thread.currentThread().getName() + ":" + i);
			
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

class Thread4 extends Thread{

	private int begin;
	private int end;
	
	public Thread4(int begin,int end)
	{
		this.begin = begin;
		this.end = end;
	}
	
	@Override
	public void run() {
		for (int i = begin; i <= end; i++) {
			System.out.println(Thread.currentThread().getName() + ":" + i);
			
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}
package com.tencent.chapter04.常用方法;
/**
 * yield():让出更多的CPU时间给其他的线程
 *
 */
public class YieldDemo {

	public static void main(String[] args) {
		Thread5 t1 = new Thread5();
		t1.start();
		
		Thread6 t2 = new Thread6();
		t2.start();
	}
	
}
class Thread5 extends Thread{

	@Override
	public void run() {
		for (int i = 1; i <= 10; i++) {
			System.out.println(Thread.currentThread().getName() + ":" + i);

			Thread.yield();//让出更多的CPU时间给其他的线程
		}
	}
}

class Thread6 extends Thread{

	@Override
	public void run() {
		for (int i = 11; i <= 20; i++) {
			System.out.println(Thread.currentThread().getName() + ":" + i);

		}
	}
}

分割线


相关信息

以上就是我关于 Java多线程编程-常用方法-join & yield方法 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4