java线程五
Join方法:
当A线程执行到了B线程的Join()方法时,A就会等待,等待B线程都执行完后,A才会继续执行。
也就是说, Join方法可以用来临时加入线程执行。
示例代码如下:
class Demo implements Runnable
{
public void run() {
for(int i=0; i<700; i++) {
System.out.println(Thread.currentThread().getName()+"....."+i);
}
}
}
public class Demo4 {
//主线程
public static void main(String[] args) throws Exception{
Demo d = new Demo();
Thread t1 = new Thread(d);
Thread t2 = new Thread(d);
t1.start();
t1.join();//强制性的让t1线程加入,并执行完
t2.start();
//这个时候,主线程要等t1线程执行完后,才会执行主线程和t2线程
for(int i=0; i<800; i++){
System.out.println(Thread.currentThread().getName()+"..."+i);
}
}
}
上面的代码结果,是主线程执行到 t1.join()方法时,CPU会先将t1线程执行完后,才会继续执行主线程和t2线程的内容。
toString()方法
打印线程的名称、优先级、所属的线程组。
线程组,哪个线程调用A线程的start()方法,那么A线程就属性哪个线程组里的子线程
setPriority()方法
设置线程的优先级,让CPU对该线程优秀考虑执行
yield()方法
使当前线程让出执行权。要注意的是:执行权让出来后,其它线程不一定就会执行。