![](https://img-blog.csdnimg.cn/direct/b50d22677dcd43edbf93e4b8df8b9f96.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
专业素养调优
文章平均质量分 82
66666
留不住的人
PHP是世界上最美的语言
展开
-
ArrayBlockingQueue基本使用及其生产者、消费者方法实现原理解析
在初始化的时候,必须指定当前队列的长度。因为是基于数组实现的队列结构,数组长度不可变,必须提前设置数组长度信息。原创 2024-06-25 19:34:16 · 374 阅读 · 0 评论 -
异步编程CompletableFuture应用&源码分析
平时多线程开发一般就是使用Runnable,Callable,Thread,FutureTask,ThreadPoolExecutor这些内容和并发编程息息相关。相对来对来说成本都不高,多多使用是可以熟悉这些内容。这些内容组合在一起去解决一些并发编程的问题时,很多时候没有办法很方便的去完成异步编程的操作。Thread + Runnable:执行异步任务,但是没有返回结果Thread + Callable + FutureTask:完整一个可以有返回结果的异步任务上述的方式都是有一定的局限性的。原创 2024-06-06 09:03:36 · 1031 阅读 · 0 评论 -
异步编程FutureTask应用&源码分析
1.1 FutureTask介绍FutureTask是一个可以取消异步任务的类。FutureTask对Future做的一个基本实现。可以调用方法区开始和取消一个任务。一般是配合Callable去使用。异步任务启动之后,可以获取一个绑定当前异步任务的FutureTask。可以基于FutureTask的方法去取消任务,查看任务是否结果,以及获取任务的返回结果。FutureTask内部的整体结构中,实现了RunnableFuture的接口,这个接口又继承了Runnable, Future这个两个接口。原创 2024-06-05 23:24:38 · 391 阅读 · 0 评论 -
Synchronized的原理及对象在JVM内存中的布局
在没有加锁之前,多个线程去调用incr()方法时,没有任何限制,都是可以同时拿到这个i的值进行 ++ 操作,但是当加了Synchronized锁之后,线程A和B就由并行执行变成了串行执行。原创 2023-08-26 16:59:23 · 132 阅读 · 0 评论 -
并发编程带来的安全性挑战
如果多个线程在做同一件事情的时候。原创 2023-08-26 16:45:54 · 103 阅读 · 0 评论 -
Java并发编程(JUC并发工具、异步编程)详解
CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。需要一个并发安全的计数器来操作。CountDownLatch就可以实现。给CountDownLatch设置一个数值。可以设置3。每个业务处理完毕之后,执行一次countDown方法,指定的3每次在执行countDown方法时,对3进行-1。主线程可以在业务处理时,执行await,主线程会阻塞等待任务处理完毕。原创 2023-04-12 23:22:34 · 247 阅读 · 0 评论 -
Java并发编程(线程池、并发集合)详解
为什么要使用线程池在开发中,为了提升效率的操作,我们需要将一些业务采用多线程的方式去执行。比如有一个比较大的任务,可以将任务分成几块,分别交给几个线程去执行,最终做一个汇总就可以了。比如做业务操作时,需要发送短信或者是发送邮件,这种操作也可以基于异步的方式完成,这种异步的方式,其实就是再构建一个线程去执行。但是,如果每次异步操作或者多线程操作都需要新创建一个线程,使用完毕后,线程再被销毁,这样的话,对系统造成一些额外的开销。在处理过程中到底由多线程处理了多少个任务,以及每个线程的开销无法统计和管理。所以咱们原创 2023-04-12 23:23:17 · 593 阅读 · 0 评论 -
Java并发编程(线程基础概念、三大特性、锁、阻塞队列)详解
什么是进程?进程是指运行中的程序。 比如我们使用钉钉,浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。什么线程?线程是CPU调度的基本单位,每个线程执行的都是某一个进程的代码的某个片段。举个栗子:房子与人比如现在有一个100平的房子,这个方式可以看做是一个进程房子里有人,人就可以看做成一个线程。人在房子中做一个事情,比如吃饭,学习,睡觉。这个就好像线程在执行某个功能的代码。所谓进程就是线程的容器,需要线程利用进程中的一些资源,处理一个代码、指令。最终实现进程锁预期的结果。进程和原创 2023-04-12 23:18:29 · 555 阅读 · 0 评论 -
JVM 内存模型
1 什么是 JVM 内存模型JVM 需要使用计算机的内存,Java 程序运行中所处理的对象或者算法都会使用 JVM 的内存空间,JVM 将内存区划分为 5 块,这样的结构称之为 JVM 内存模型。2 JVM 为什么进行内存区域划分随着对象数量的增加,JVM 内存使用率也在增加,如果 JVM 内存使用率达到 100%,则无法继续运行程序。为了让 JVM 内存可以被重复使用,我们需要进行垃圾回收。为了提高垃圾回收的效率,JVM 将内存区域进行了划分3 JVM 内存划分JVM 按照线程是原创 2021-05-18 23:00:34 · 16158 阅读 · 31 评论