
线程
文章平均质量分 89
wit_cx
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程池大小 + 线程数量
可能很多人都看到过一个线程数设置的理论: CPU 密集型的程序 - 核心数 + 1 I/O 密集型的程序 - 核心数 * 2 不会吧,不会吧,真的有人按照这个理论规划线程数?线程数和CPU利用率的小测试抛开一些操作系统,计算机原理不谈,说一个基本的理论(不用纠结是否严谨,只为好理解):一个CPU核心,单位时间内只能执行一个线程的指令** 那么理论上,我一个线程只需要不停的执行指令,就可以跑满一个核心的利用率。来写个死循环空跑的例子验证一下:测试环境:AMD Ryzen .转载 2021-05-21 10:57:20 · 230 阅读 · 0 评论 -
Linux load average负载量分析与解决思路
一、load averagetop命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载表示 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中: - 它没有在等待I/O操作的结果 - 它没有主动进入等待状态(也就是没有调用’wait’) - 没有被停止(例如:等待终止) Update:在Linux中,进程分为三种状态,一种是阻塞的进程blocked转载 2021-05-21 10:54:41 · 1065 阅读 · 0 评论 -
Linux vmstat命令实战详解
1.说明vmstat命令是最常见的Linux/Unix监控工具,属于sysstat包。可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。2.安装yum install -y sysstat一般vmstat工具的使用是通过转载 2021-05-05 14:45:56 · 171 阅读 · 0 评论 -
【JVM性能调优】jstack和线程dump分析
一、几个概念:1、jstack命令的语法格式:jstack <pid>,可用于查看java进程id。2、Dump文件:Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专门的工具软件打开,比如使用Windbg。在Windbg中可以通过.dump命令保存进程的dump文件。比如下面的命令把当前进程的镜像保存为c:\testdump.dmp文件:.dump /ma c:\testdump.d转载 2021-05-05 14:25:57 · 809 阅读 · 0 评论 -
Thread 的join方法解释
一、作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码:public class JoinTest { public static void main(String [] args) throws InterruptedException { ThreadJoinTest t1 = new ThreadJoinTest("小明"); ThreadJoinTest t2 = new ThreadJo转载 2020-11-11 14:17:10 · 249 阅读 · 0 评论 -
关于信号量Semaphore的acquire与release的说明
Semaphore 是 synchronized 的加强版,作用是控制线程的并发数量。关于信号量Semaphore的acquire与release的说明1、Semaphore信号量作为一种流控手段,可以对特定资源的允许同时访问的操作数量进行控制,例如池化技术(连接池)中的并发数,有界阻塞容器的容量等。2、Semaphore中包含初始化时固定个数的许可,在进行操作的时候,需要先acquire获取到许可,才可以继续执行任务,如果获取失败,则进入阻塞;处理完成之后需要release释放许可。.转载 2020-11-10 14:26:38 · 1981 阅读 · 0 评论 -
详解Condition的await和signal等待/通知机制
1.Condition简介任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等待/通知机制,同样的, 在java Lock体系下依然会有同样的方法实现等待/通知机制。从整体上来看Object的wait和notify/notify是与对象监视器配合完成线程间的等待/通知机制,而Condit转载 2020-11-10 14:26:08 · 479 阅读 · 0 评论 -
[Java多线程]ABC三个线程顺序输出的问题
大概的问题是这样的:有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C要求, 同时启动三个线程, 按顺序输出ABC, 循环10次这是一个多线程协同的问题, 本身多线程是没有执行顺序的, 顺序不一定, Java在concurrent里面提供了多线程同步的支持使用ReentrantLock来解决, 还有个state整数用来判断轮到谁执行了 import java.util.concurrent.locks.Lock; import java.uti...转载 2020-11-10 14:24:40 · 1664 阅读 · 1 评论