zoukankan      html  css  js  c++  java
  • java--ThreadPool线程池简单用法

    package com.threadPool;
    
    import java.util.concurrent.ArrayBlockingQueue;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
    
    public class TestThreadPool {
    	private static int produceTaskSleepTime = 0;
    
    	private static int produceTaskMaxNumber = 100000;
    
    	public static void main(String[] args) {
    
    		// 构造一个线程池
    		ThreadPoolExecutor threadPool = new ThreadPoolExecutor(6, 100, 3,
    				TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(3),
    				new ThreadPoolExecutor.DiscardOldestPolicy());
    
    		for (int i = 1; i <= produceTaskMaxNumber; i++) {
    			try {
    				String task = "task@ " + i;
    				System.out.println("创建任务并提交到线程池中:" + task);
    				threadPool.execute(new ThreadPoolTask(task));
    
    				Thread.sleep(produceTaskSleepTime);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    
    package com.threadPool;
    
    import java.io.Serializable;
    
    public class ThreadPoolTask implements Runnable, Serializable {
    	private Object attachData;
    
    	ThreadPoolTask(Object tasks) {
    		this.attachData = tasks;
    	}
    
    	public void run() {
    
    		System.out.println("开始执行任务:" + attachData);
    
    		attachData = null;
    	}
    
    	public Object getTask() {
    		return this.attachData;
    	}
    }
    



    输出结果:

    开始执行任务:task@ 97856
    开始执行任务:task@ 97857
    创建任务并提交到线程池中:task@ 97858
    创建任务并提交到线程池中:task@ 97859
    开始执行任务:task@ 97858
    开始执行任务:task@ 97859
    创建任务并提交到线程池中:task@ 97860
    .......
    


     参考网站: http://my.eoe.cn/niunaixiaoshu/archive/4111.html

  • 相关阅读:
    6.无监督学习-降维
    5.无监督学习-DBSCAN聚类算法及应用
    4.无监督学习--K-means聚类
    如何让虚拟机与本机进行通信
    Linux网络配置
    网关是什么?有什么作用?
    DNS是什么
    软件工程第四周作业代码规范
    软件工程第四周作业之四则运算-C#实现
    一些讨论、读书的感想
  • 原文地址:https://www.cnblogs.com/riskyer/p/3310526.html
Copyright © 2011-2022 走看看