1、线程池简介 1.1 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下 ...
分类:
编程语言 时间:
2020-01-19 22:19:14
阅读次数:
104
并发与并行 并发:指两个或多个事件在同一时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 进程与线程 进程: 是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一 ...
分类:
编程语言 时间:
2020-01-19 09:15:32
阅读次数:
91
如何获取线程池ThreadPoolExecutor正在运行的线程?这里有两种方法,如下代码: package com.itbac.thread; import java.util.HashSet; import java.util.Set; import java.util.concurrent.* ...
分类:
编程语言 时间:
2020-01-19 00:26:34
阅读次数:
373
环境 jdk version:jdk1.8.0_171 一、Executor接口执行器接口,也是最顶层的抽象核心接口, 分离了任务和任务的执行。 二、ExecutorService接口在Executor的基础上提供了执行器生命周期管理,任务异步执行等功能。在Executor的基础上增强了对任务的控制 ...
分类:
编程语言 时间:
2020-01-18 14:53:28
阅读次数:
107
前面我们在章节“Socket通讯探索(一)”中如何实现一个tcp连接,但是这仅仅是一个最初级的BIO实现,且没有添加线程池,实际应用中很少采用这种方式,因为不得不考虑当大量的Tcp连接建立的时候,服务端如何安全稳定的运行?为什么呢? 1、BIO实现方式,是阻塞式的(上一节最后面的实现方式虽然无数据的 ...
分类:
其他好文 时间:
2020-01-16 23:52:55
阅读次数:
82
1、线程池工作原理 Java线程池主要用于管理线程组及其运行状态。其主要作用是线程复用、线程资源管理、控制操作系统的最大并发数。 Java线程池的工作原理:JVM先根据用户的参数创建一定数量的可运行的线程任务,并将其放入队列中,在线程创建后启动这些任务,如果线程数量超过了最大线程数量,则超出数量的线 ...
分类:
编程语言 时间:
2020-01-16 22:11:42
阅读次数:
77
目录 一、简介 二、Executor 框架 三、ThreadPoolExecutor 四、Executors 参考资料 一、简介 什么是线程池 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 为什么要用线程池 如果并发请求数量很多,但每个线程执行的时间很短 ...
分类:
编程语言 时间:
2020-01-16 14:18:56
阅读次数:
67
小结难点: 关于Callable 流程 //一、创建执行服务 也是线程池 ExecutorService ser = Executors.newFixedThreadPool(线程数); //提交执行 Future<call方法返回的类型> fr = ser.submit(逻辑执行类); //执行结 ...
分类:
编程语言 时间:
2020-01-15 23:12:52
阅读次数:
77
1.使用线程池的目的: 线程是稀缺资源,不能频繁的创建。 解耦作用;线程的创建与执行完全分开,方便维护。 应当将其放入一个池子中,可以给其他任务进行复用 2.线程池原理: 核心的思想就是把宝贵的资源放到一个池子中;每次使用都从里面获取,用完之后又放回池子供其他人使用。 3.配置线程池: 常见的线程: ...
分类:
编程语言 时间:
2020-01-14 22:14:18
阅读次数:
114
1. 基础知识:HashMap,ConcurrentHashMap,锁(Synchronized,ReentrantLock,自旋锁),AQS,线程池,volatile,异常处理,Error和Exception,CountDownLatch和CyclicBarrier 2. 并发知识:高并发怎么办, ...
分类:
其他好文 时间:
2020-01-14 20:17:27
阅读次数:
75