现在的位置: 首页 > 综合 > 正文

线程的休眠和让步还有加入

2014年02月19日 ⁄ 综合 ⁄ 共 951字 ⁄ 字号 评论关闭
package ch12;

public class SleepText {
	public static void main(String[] args) {
		System.out.println("主线程启动:");
		Thread t1 = new Thread(new SleepRunner());
		t1.start();
		for(int i=1;i<=50;i++)
		{
			System.out.println(Thread.currentThread().getName()+":"+i);
			if(i==30)
			{
				try {
					t1.join();//把子线程加入到主线程中执行
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		System.out.println("启动一个新的线程t1。。。。");
		Thread t2= new Thread(new NRunner());
		t2.start();
		System.out.println("启动一个新的线程t2。。。。");
	}
}
class SleepRunner implements Runnable
{

	@Override
	public void run() {
		// TODO Auto-generated method stub
		try {
			Thread.sleep(100);//休眠100ms
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(int i=0;i<1000;i++)
		{
			System.out.println("SleepRunner:"+i);
		}
	}
}
class NRunner extends Thread
{

	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i=0;i<1000;i++)
		{
			System.out.println(Thread.currentThread().getName()+":"+i);
		if(i%10==0)
		   {
			Thread.yield();//如果i能被10整除,则当前线程让步给其他线程
		   }
	    }
	}
	
}

抱歉!评论已关闭.