Java高并发
Destiny宿命
这个作者很懒,什么都没留下…
展开
-
Java并发编程之六--线程池
一、什么是线程池?为什么使用线程池?线程池介绍: 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的...原创 2019-11-10 14:19:06 · 134 阅读 · 0 评论 -
Java并发编程之五:并发容器
一、ConCurrentHashMap可参考HashMap和ConcurrentHashMap详解二、更多的并发容器1).SkipList含义:跳表 SkipList,以空间换时间,在原链表的基础上形成多层索引,但是某个节点在插入时,是否成为索引,随机决定,所以跳表又称为概率数据结构。应用:ConcurrentSkipListMap 和 ConcurrentSkipListS...原创 2019-11-06 21:19:25 · 148 阅读 · 0 评论 -
Java并发编程之四:AQS源码研究
Java高并发专题之~~AQS源码研究一、什么是AQS?AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,如下图所示。AQS为一系列同步器依赖于一个单独的原子变量(state)的同步器提供了一个非常有用的基础。子类们必须定义改变state变量的prot...原创 2019-11-01 14:57:01 · 466 阅读 · 0 评论 -
Java并发编程之三:原子操作CAS
参考https://blog.csdn.net/weixin_37598682/article/details/81285176https://blog.csdn.net/v123411739/article/details/79561458原创 2019-10-25 21:11:11 · 133 阅读 · 0 评论 -
Java并发编程之二:线程的开发工具类
线程的开发工具类一、Fork-Join1.Fork-Join简介从JDK1.7开始,Java提供Fork/Join框架用于并行执行任务,它的思想就是讲一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果。这种思想和MapReduce很像(input --> split --> map --> reduce --> output)主要有两步:第一、任务...原创 2019-10-20 20:08:52 · 229 阅读 · 1 评论 -
Java并发编程之一:线程基础,线程之间的共享与协作
线程基础,线程之间的共享与协作目录线程基础,线程之间的共享与协作1.CPU时间片轮转机制2.进程和线程3.并行和并发4.高并发编程的含义,好处及注意事项(二)认识java的线程1.3种创建线程的方式2.线程安全停止工作的方式3.线程常用方法和线程的状态5.线程中的stop(),interrupt(),isInterrupted(),static方法int...原创 2019-10-19 19:26:55 · 419 阅读 · 0 评论 -
Java并发编程之六:线程池ThreadPoolExecutor构造方法和规则
为什么用线程池有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。而且当线程数量太多时,系统不一定能受得了。使用线程池主要为了解决一下几个问题: 通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。对线程进行一些维护和管理,比如定时开始,...原创 2018-12-28 16:42:07 · 233 阅读 · 0 评论