通过Thread.sleep把任务平均分配给线程按顺序执行的小例子_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 通过Thread.sleep把任务平均分配给线程按顺序执行的小例子

通过Thread.sleep把任务平均分配给线程按顺序执行的小例子

 2014/7/22 12:51:30  alleni123  程序员俱乐部  我要评论(0)
  • 摘要:packagecom.lj.test.JavaSe4;importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importorg.apache.commons.io.FileUtils
  • 标签:thread 例子 执行 线程
class="java" name="code">package com.lj.test.JavaSe4;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import org.apache.commons.io.FileUtils;

public class App
{
	public static void main(String[] args) throws InterruptedException, IOException
	{	
		
		for(int i=0;i<100;i++){
			FileUtils.writeStringToFile(new File("d:/test.txt"), i+"\r\n", true);
		}
		
		
		ExecutorService service = Executors.newFixedThreadPool(3);
		
		List<String> urls=new ArrayList<String>();
		
		urls=FileUtils.readLines(new File("d:/test.txt"));
		
		
		while(urls.size()!=0){
			Hello h=new Hello(urls.get(0));
			service.submit(h);
			urls.remove(0);
			Thread.sleep(1);
		}
		
		service.shutdown();
	}
}

class Hello implements Runnable
{
	
	private String str;
	
	public Hello(String str)
	{
		this.str=str;
	}
	
	
	@Override
	public void run()
	{	
		System.out.println(Thread.currentThread().getName()+"-handle-"+str);
	}

}



只要加入了sleep, 就会按照123的顺序不停的循环调用线程, 而不是每个线程都再抢任务执行。
发表评论
用户名: 匿名