计算机
文章平均质量分 69
EBABEFAC
兴趣、初心、热情,坚持;怠惰是原罪;
20230530,还是得有一个地方分享下东西,不然自己容易怠惰
展开
-
用代码和图告诉你VisualVM中的线程的几种状态
VisualVM是压测过程中经常用到的一个工具,但是在分析过程中对其中的几种状态了解的不太清楚,通过查阅资源和代码中测试,基本搞懂了这些状态的区别。状态说明:Running处于这种状态的线程对于操作系统而言,要么是正在占用CPU时间片运行的线程,要么是已经就绪的线程,只要有CPU时间片分配到,就可以直接运行,对应Java中Runnable状态。Sleeping处于睡眠状态的线程...原创 2019-11-30 17:15:46 · 2647 阅读 · 0 评论 -
计算机系统的学习-笔记1
计算机系统漫游1、并发和并行并发:指一个同时具有多个活动的系统并行:指的是用并发来使一个系统运行的更快。2、计算机三个层次实现并发和并行(1)线程级并发(2)指令级并行通过借助于流水线(pipelining)技术,将执行一个指令所需要的活动划分为不同的步骤,将处理器的硬件组织成一系列的阶段,每一个阶段执行一个步骤,这些阶段可以并性地操作。(3)单指令、多数据并行允许一条指令产生多...原创 2019-09-15 23:31:37 · 175 阅读 · 0 评论 -
IO模型
I/O模型两个关键词:内核空间和用户空间;io操作时,比如网络IO读,首先数据会先到达内核空间,然后在内核态将内核空间的数据copy到用户空间。如果写数据时,也是通常将用户空间的数据copy到内核空间,然后在将内核空间的数据发送出去。但目前有很多IO优化技术,比如:direct io、mmap、sendfile等。1、阻塞I/O模型发出一个请求,直到数据返回,一直处于等待状态,不做...原创 2019-09-19 16:51:58 · 152 阅读 · 0 评论 -
ReentrantLock原理介绍和源码解析
ReentrantLock原理介绍和源码解析AQS讲解ReentrantLock之前还是得先说AQS,AQS全称AbstractQueuedSynchronizer。正如源码的文档所说,这是依赖于FIFO队列提供的一种实现阻塞队列和相关联同步器(信号量、事件等等)的一种框架。像我们平常用的ReentrantLock、Semaphore、CountDownLatch、ThreadPoolExec...原创 2019-09-29 19:41:58 · 169 阅读 · 0 评论 -
ThreadPoolExecutor线程池实现原理
ThreadPoolExecutor线程池实现原理线程池在工作中用到很多,也清楚其中的一些参数的配置,但是呢,总是对怎么标识空闲线程、活动线程不太清楚。空闲线程具体是怎么回收的?我之前一直在想一个线程的run方法执行完之后这个线程不就会被销毁了吗?怎么实现重复利用的呢?带着这些疑问,看了看底层的源码。先来看看ThreadPollExecutor的继承结构Executor接口中就一个ex...原创 2019-10-02 11:55:52 · 147 阅读 · 0 评论 -
BlockingQueue之ArrayBlockingQueue实现原理
BlockingQueue之ArrayBlockingQueueArrayBlockingQueue是一个基于数组实现的有界限的阻塞队列,队列中的元素也是先进先出。在说ArrayBlockingQueue之前,先来看看其接口BlockingQueue,接口中提供了一些比较有意思的方法,当我们调用其中的方法时,会表现出一下四种行为之一:直接抛出一个异常(Throws Exception)返...原创 2019-10-02 17:25:26 · 544 阅读 · 0 评论