![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 95
越学习越无知
本人是一名刚入编程世界的小白,喜欢在博客上分享自己学习的理解,博客中如果哪里没写对欢迎在留言区留言
展开
-
什么是CAS机制
什么是CAS机制我们先看一段代码:启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果一定是200吗?因为这段代码是非线程安全的,所以最终的自增结果很可能会小于200。我们再加上synchronized同步锁,再来看一下。加了同步锁之后,count自增的操作变成了原子性操作,所以最终输出一定是count=200,代码实现了线程安全。虽然synchronized确保了线程安全,但是在某些情况下,这并不是一个最有的选择。关键在于性能问题。synchronized原创 2021-07-30 14:56:13 · 226 阅读 · 0 评论 -
线程池详解
线程池为什么要使用线程池?池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。这里借用《Java 并发编程的艺术》提到的来说一下使用线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就原创 2021-07-30 14:52:48 · 489 阅读 · 0 评论 -
AQS详解
Atomic 是指一个操作是不可中断的。原子性指的是即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。AQS 的全称为 AbstractQueuedSynchronizer ,翻译过来的意思就是抽象队列同步器一、概述谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的原创 2021-07-30 14:48:49 · 163 阅读 · 0 评论 -
关于多线程的认识
多线程进程与线程进程定义进程是获得资源后的正在执行的程序的统称流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FSccki1D-1627550799964)(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.kanzhun.com%2Fimages%2Fseo%2Fmianshiti%2F20191125%2Fd67314c2cc0644bee5b25197e593fd73.jpg&ref原创 2021-07-30 14:46:40 · 243 阅读 · 0 评论 -
CompletableFuture
CompletableFuture为什么会有CompletableFuture在CompletableFuture未开发出来前,使用Java进行获取异步编程的结果是很不方便的,通常使用Future这个类获取结果,但是是Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。虽然Future以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不原创 2021-07-29 15:15:27 · 268 阅读 · 0 评论