文档章节

newSingleThreadExecutor唯一线程的线程池代码示例

满风
 满风
发布于 2016/04/15 16:59
字数 338
阅读 290
收藏 0
点赞 1
评论 0
package com.dy.pool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 在Executors类里面提供了一些静态工厂,生成一些常用的线程池。
 * 1. newSingleThreadExecutor
 * 创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。
 * 如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。
 * 此线程池保证所有任务的执行顺序按照任务的提交顺序执行
 */
public class SingleThreadExecutor {
    public static void main(String[] args) {
        System.out.println("欢迎来到线程世界!");

        //创建一个可重用固定线程数的线程池
        ExecutorService pool = Executors.newSingleThreadExecutor();
        //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口
        SingleThreadExecutor.MyThread t1 = new SingleThreadExecutor().new MyThread("实例t1");
        SingleThreadExecutor.MyThread t2 = new SingleThreadExecutor().new MyThread("实例t2");
        SingleThreadExecutor.MyThread t3 = new SingleThreadExecutor().new MyThread("实例t3");
        SingleThreadExecutor.MyThread t4 = new SingleThreadExecutor().new MyThread("实例t4");
        //将线程放入池中进行执行
        pool.execute(t1);
        pool.execute(t2);
        pool.execute(t3);
        pool.execute(t4);
        //关闭线程池
        pool.shutdown();
    }

    class MyThread extends Thread {
        public MyThread(String name){
            super(name);
        }
        @Override
        public void run() {
            System.out.println(this.getName() + "正在执行。。。");
            System.out.println(Thread.currentThread().getName() + "正在执行。。。");
        }
    }
}


另外说下 代码中的this.getName和Thread.currentThread().getName():

前者的this是指实例对象自身,后者是指实例对象中的当前执行线程;二者不要理解混淆了!

© 著作权归作者所有

共有 人打赏支持
满风

满风

粉丝 81
博文 159
码字总数 169146
作品 0
杭州
技术主管
Java 四种线程池的用法分析

1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { ).start(); 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差。 ...

7哥
2016/07/07
41
0
java 四种线程池的使用

java 四种线程池的使用 介绍new Thread的弊端及Java四种线程池的使用 1,线程池的作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行...

PengLei
2017/10/12
0
0
java四种线程池使用

Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创...

方墨大师
2016/03/01
58
0
java常用线程池

Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创...

zhdan
2016/12/22
49
0
​Java 线程池

Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创...

待续_
2016/04/09
94
0
线程池 (thread pool) 的类型与实现方式

  在许多应用中需要频繁的创建许多生命周期很短的线程,如果用传统方法的话就会造成大量的资源了浪费,java的设计者们考虑到了这点在java中加入了线程池这个特性,它负责管理大量的线程的创...

钟声已经敲响
2017/10/22
0
0
多线程编程学习五(线程池的创建)

一、概述 New Thread的弊端如下: a、每次New Thread新建对象性能差。 b、线程缺乏统一的管理,可能无限制的新建线程,相互之间竞争,极可能占用过多的系统资源导致死机 或者 OOM。 c、缺乏更...

jmcui
2017/12/10
0
0
java 线程之executors线程池

一、线程池的作用   平时的业务中,如果要使用多线程,那么我们会在业务开始前创建线程,业务结束后,销毁线程。但是对于业务来说,线程的创建和销毁是与业务本身无关的,只关心线程所执行...

xsster
2017/07/28
0
0
Android性能优化之使用线程池处理异步任务

说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式: 1、继承Thread类 2、实现Runnable接口 虽说这两种方式都可以创建出一个线程,不过它们之间还...

u010687392
2015/11/17
0
0
Java线程池

我们平时在写程序中常常使用多线程来提高CPU以及其他资源的利用率,但是当CPU中的线程超过了CPU调度范围时,我们的程序就会变得缓慢甚至出现死锁导致程序卡死等现象。也有很多时候我们需要创...

邵鸿鑫
2016/02/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
32分钟前
0
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部