android下网的线程池研究
android上网的线程池研究
import java.io.Serializable; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class Mian1 { /** * @param args */ private static int produceTaskSleepTime = 2; private static int consumeTaskSleepTime = 2000; private static int produceTaskMaxNumber = 30; public static void main(String[] args) { // TODO Auto-generated method stub ThreadPoolExecutor threadPool = new ThreadPoolExecutor(4, 4, 3, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(),new ThreadPoolExecutor.DiscardOldestPolicy()); for(int i=1;i<=produceTaskMaxNumber;i++){ String task ="task@"+i; System.out.println("put" +task); threadPool.execute(new ThreadPoolTask(task)); try { Thread.sleep(produceTaskSleepTime); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println("1111111111"); } public static class ThreadPoolTask implements Runnable, Serializable { private static final long serialversionUID = 0; private Object threadPoolTaskData; public ThreadPoolTask(Object tasks) { this.threadPoolTaskData = tasks; } @Override public void run() { // TODO Auto-generated method stub System.out.println("start.." + threadPoolTaskData); try { Thread.sleep(consumeTaskSleepTime); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } threadPoolTaskData = null; } public Object getTask(){ return this.threadPoolTaskData; } } }