博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程池
阅读量:6295 次
发布时间:2019-06-22

本文共 1664 字,大约阅读时间需要 5 分钟。

hot3.png

package sample;/** * 线程池负责管理工作线程,包含一个等待执行的任务队列。 * 线程池的任务队列是一个Runnable集合,工作线程负责从任务队列中取出并执行Runnable对象。 * java.util.concurrent.executors 提供了 java.util.concurrent.executor 接口的一个Java实现,可以创建线程池。下面是一个简单示例: * 首先创建一个Runable 类: * @author markGao * */public class WorkerThread implements Runnable {    private String command;    public WorkerThread(String s) {        this.command = s;    }    public void run() {        System.out.println(Thread.currentThread().getName()                + " Start. Command = " + command);        processCommand();        System.out.println(Thread.currentThread().getName() + " End.");    }    private void processCommand() {        try {            Thread.sleep(5000);        } catch (InterruptedException e) {            e.printStackTrace();        }    }    @Override    public String toString() {        return this.command;    }}
package sample;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 从 Executors 框架中创建固定大小的线程池 * @author markGao * */public class SimpleThreadPool {    public static void main(String[] args) {        /**         * 在上面的程序中,我们创建了包含5个工作线程的固定大小线程池。         * 然后,我们向线程池提交10个任务。         * 由于线程池的大小是5,因此首先会启动5个工作线程,其他任务将进行等待。         * 一旦有任务结束,工作线程会从等待队列中挑选下一个任务并开始执行。         */        ExecutorService executor = Executors.newFixedThreadPool(5);        for (int i = 1; i < 11; i++) {            Runnable worker = new WorkerThread("Thead No: " + i);            executor.execute(worker);        }        executor.shutdown();        while (!executor.isTerminated()) {        }        System.out.println("Finished all threads");    }}

转载于:https://my.oschina.net/u/1412027/blog/192973

你可能感兴趣的文章
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>
2(2).选择排序_冒泡(双向循环链表)
查看>>
MySQL 索引 BST树、B树、B+树、B*树
查看>>
微信支付
查看>>
CodeBlocks中的OpenGL
查看>>
短址(short URL)
查看>>
第十三章 RememberMe——《跟我学Shiro》
查看>>
mysql 时间函数 时间戳转为日期
查看>>
索引失效 ORA-01502
查看>>
Oracle取月份,不带前面的0
查看>>