线程中yield()与join()方法的使用
2013-09-16 21:30
316 查看
yield()的使用:
输出结果:
join()的使用:
输出结果:
public class ThreadDemo2 { public static void main(String[] args) { DemoThread dt1=new DemoThread("线程1"); DemoThread dt2=new DemoThread("线程2"); dt1.start(); dt2.start(); } } //创建一个线程类 class DemoThread extends Thread{ public String name; public DemoThread(String name) { this.name=name; } @Override public void run() { try { for(int i=1;i<=10;i++){ Thread.sleep(200); System.out.println(name+"------"+i); if(i%3==0){ Thread.yield();//放弃CPU资源(暂停当前正在执行的线程对象,并执行其他线程。) System.out.println(name+"------"+"让"+i); } } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
输出结果:
join()的使用:
public class ThreadDemo4 { public static void main(String[] args) throws Exception{ System.out.println("主线程开始"); XDemo xd1=new XDemo(); XDemo xd2=new XDemo(); XDemo xd3=new XDemo(); //start方法规定了子线程都在两秒延迟后才执行 xd1.start(); xd2.start(); xd1.join(800);//暂停主线程,等待子线程800毫秒,如果子线程没有执行继续向下执行(在这里,因为只等待0.8秒,但是子线程等待2秒,所以会向下下执行) //如果把参数去掉,那么就会暂停主线程,直到xd1线程执行完之后继续向下执行 System.out.println("----"); System.out.println("-------"); xd3.start(); xd3.join(700);//没有等到子线程执行 System.out.println("===");//继续向下执行 } } class XDemo extends Thread{ @Override public void run() { try { Thread.sleep(2000); System.out.println(Thread.currentThread().getName()); } catch (InterruptedException e) { e.printStackTrace(); } } }
输出结果:
相关文章推荐
- 线程的笔记1 wait yield join interrupt deamon 死锁使用方法
- Java线程--interrupt join yield setDaemon常用方法的使用
- Java 线程与并发研究系列三(join()方法使用)
- 线程中的start、join、sleep、yield方法
- Java进程与多线程+线程中的join、yield、wait等方法+synchronized同步锁使用
- Java线程中yield与join方法的区别
- java线程wait,notify,yield,join方法
- Java线程中yield与join方法的区别
- 一目了然,Java线程各方法区别:sleep, yield, join, wait, notify
- 线程中sleep(),join(),yield()的使用
- java关于线程的sleep(),yield(),join(),wait(),notify(),notifyAll()等方法的总结
- 线程中join方法的使用
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- 线程间通信-方法join的使用
- yield,sleep,join方法的使用
- 线程中join()方法的使用
- 线程的sleep,join,yield方法
- 线程sleep,wait,join,yield方法的区别
- Java线程中yield与join方法的区别代码解析
- 线程中join()方法的使用