static final int poolSize = 50; static final long keepAliveTime = 0L; static final ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFor ...
分类:
编程语言 时间:
2020-05-30 12:57:37
阅读次数:
46
今天我们进入了专栏的新模块:性能优化。在这个模块里,我会先从“性能优化的六大原则”开始讲起,然后再为你讲解实践中普遍采用的十个性能优化策略,并且分别针对CPU、系统、存储以及跨层这几个领域,讲讲具体的优化案例。我们今天先探讨性能优化的原则。在讲具体原则之前,我想先给你讲一个有趣的往事。我曾经负责过一个存储服务的性能优化和容量效率。那个服务的容量需求很大,但它的最大性能瓶颈不是CPU,而是存储的空间
分类:
其他好文 时间:
2020-05-30 12:53:05
阅读次数:
174
请叙述一下您对线程池的理解? 回答这个面试题要从线程池的好处,线程池如何使用和线程池启动时执行的策略来说 线程池的好处: 降低资源消耗:重复利用线程池中的线程节省线程创建和销毁带来的消耗; 提高性能:当任务需求时,可以不用创建线程直接执行,主要是直接从线程池中取出线程去执行; 提高线程的可管理性:线 ...
分类:
编程语言 时间:
2020-05-30 12:51:24
阅读次数:
86
1 """ 2 非阻塞模式:当进程池有空闲,就将任务放入,它会继续执行主进程 3 """ 4 import os 5 import time 6 from multiprocessing import Pool 7 from random import random 8 9 container = ...
分类:
编程语言 时间:
2020-05-30 12:24:07
阅读次数:
82
一个简单的连接池实现 前言 本人近日正在学习多线程相关的知识,学习线程池的过程中联想到连接池也是一个存在线程安全的复用结构,因此简单探究了连接池相关的实现,该文章用于记录相关的实现思路。 为什么需要连接池? 系统与数据库、缓存进行通信的时候都需要先建立连接、执行相关命令以后断开连接,这个过程将会消耗 ...
分类:
其他好文 时间:
2020-05-30 09:12:19
阅读次数:
72
Executors Executors.newFixedThreadPool(int):创建一个固定线程数的线程池,其最大线程数跟核心线程数一样大。使用LinkBlockingQueue. public static ExecutorService newFixedThreadPool(int nT ...
分类:
编程语言 时间:
2020-05-28 21:48:05
阅读次数:
70
Dubbo 线程池满异常应该是大多数 Dubbo 用户都遇到过的一个问题,本文以 Arthas 3.1.7 版本为例,介绍如何针对该异常进行诊断,主要使用到 `dashboard`?/?`thread` 两个指令。
分类:
编程语言 时间:
2020-05-28 19:45:27
阅读次数:
64
线程池 “线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。 Executors 工具类 常用方法 返回值 方法名 说明 Exe ...
分类:
编程语言 时间:
2020-05-28 19:43:05
阅读次数:
56
概述 在日常开发中,为了提高主线程的效率,往往需要采用异步调用处理,例如系统日志等。在实际业务场景中,可以使用消息中间件如RabbitMQ、RocketMQ、Kafka等来解决。假如对高可用没有太高的要求,也可以使用线程池或者队列来解决。 创建工程 创建Maven工程 修改配置文件 <project ...
分类:
编程语言 时间:
2020-05-28 18:17:10
阅读次数:
72
一、ThreadPool概述提供一个线程池,该线程池可用于执行任务、发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。创建线程需要时间。如果有不同的小任务要完成,就可以事先创建许多线程/在应完成这些任务时发出请求。不需要自己创建这样一个列表。该列表由ThreadPool类托管。这个类会在... ...