
java高并发编程
文章平均质量分 50
qq_16570607
一步一个脚印,在成为优秀程序员的路上。
展开
-
CountDownLatch锁的应用
【代码】CountDownLatch锁的应用。原创 2023-09-06 10:07:49 · 181 阅读 · 0 评论 -
java任务太大,分批执行
【代码】java任务太大,分批执行。原创 2023-08-08 09:26:09 · 294 阅读 · 1 评论 -
java线程池的使用
【代码】java线程池的使用。原创 2023-08-08 09:20:31 · 218 阅读 · 0 评论 -
Thread类的常用方法及使用场景
下面就介绍一些Thread类API基本用法。包括sleep,join,yield,interrupt。原创 2023-03-31 15:35:21 · 309 阅读 · 0 评论 -
runnable和callable的区别
runnable和callable的区别主要在于它们的用途和实现方式。主要区别:orcallable的执行,被ExecutorService执行or作为FeatureTask的参数or使用FeatureTask这里还有一个很好的总结原创 2023-03-31 11:42:10 · 1159 阅读 · 0 评论 -
Java的CPU 飙升700%优化的真实案例
最近负责的一个项目上线,运行一段时间后发现对应的进程竟然占用了700%的CPU,导致公司的物理服务器都不堪重负,频繁宕机。那么,针对这类java进程CPU飙升的问题,我们一般要怎么去定位解决呢?原创 2023-03-19 11:44:11 · 1366 阅读 · 0 评论 -
CAS分段机制
众所周知,单纯的CAS在高并发场景下,会造成线程的空转所以在jdk1.8中做了优化引入了类 LongAdder当多个线程进行修改时,使用多个cell,每个cell value初始值为0,分散多个线程的请求压力如果需要求和 则将base和所有的cell加起来即可源码求和源码:...原创 2021-07-22 13:18:00 · 221 阅读 · 0 评论 -
java并发编程
什么是多路复用IO?基本概念IO多路复用模型,就是通过一种新的系统调用,一个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是内核缓冲区可读/可写),内核kernel能够通知程序进行相应的IO系统调用。在这种模式中,首先不是进行read系统调动,而是进行select/epoll系统调用。当然,这里有一个前提,需要将目标网络连接,提前注册到select/epoll的可查询socket列表中。然后,才可以开启整个的IO多路复用模型的读流程。多路复用IO的优点用select/epoll的优势在于原创 2021-07-05 12:07:01 · 127 阅读 · 2 评论 -
java多线程知识笔记
阻塞的本质是将进程挂起,不再参与进程调度。而挂起的本质是将进程的 state 赋值为非RUNNABLE,这样调度机制的代码中就不会把它作为下一个获得CPU运行机会的可选项。原创 2021-07-11 18:12:54 · 762 阅读 · 0 评论 -
java高并发编程基础
前言CountDownLatch、CyclicBarrier、Sempahore,这三个利器都是基于aqs(AbstractQueuedSynchronizer抽象类)来实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。java高并发编程基础三大利器之一Semaphore概念Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。总结当信号量Semaphore初始化设置许可证为1 时,它也可以当作互斥原创 2021-07-06 12:12:12 · 511 阅读 · 0 评论