java多線程的一個案例

   這邊介紹一個java多線程的一個小案例,這邊是用ScheduledExecutorService類實現一個線程池的任務調度,這裏面主要寫一個MyTimer類繼承了Thread,然後設置一個靜態任務調度的線程池容納線程數,然後在MyTimer裏面寫幾個內部類去實現Runnable接口,最後面在重寫的Run方法中週期調用以上的內部類所在的線程。


package com.ThreadTest;


import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class MyTimer extends Thread {
	private static ScheduledExecutorService scheduleExec = Executors.newScheduledThreadPool(20);

	public class println1 implements Runnable{

		@Override
		public void run() {
			// TODO Auto-generated method stub
			System.out.println("======println2======with 3Seconds and period 2seconds");
		}
		
	}
	
	public class println2 implements Runnable{

		@Override
		public void run() {
			// TODO Auto-generated method stub
			System.out.println("======println=2=====with 3 Seconds and period 5seconds");
		}
		
	}
	
	
	public class println3 implements Runnable{

		@Override
		public void run() {
			// TODO Auto-generated method stub
			System.out.println("======println3=======with delay 10 seconds");
		}
		
	}
	
	@Override
	public void run() {
		// TODO Auto-generated method stub
		scheduleExec.scheduleWithFixedDelay(new println1(), 3, 3, TimeUnit.SECONDS);
		scheduleExec.scheduleWithFixedDelay(new println2(), 3, 5, TimeUnit.SECONDS);
		scheduleExec.schedule(new println3(),10, TimeUnit.SECONDS);

		
	}

	
}


主函數的調用如下:

package com.ThreadTest;

public class TestMain {

	public static void main(String[] args) {
		MyTimer myTimer = new MyTimer();
		myTimer.start();
	}

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章