JUC
文章平均质量分 86
阳哥JUC课程为主的JUC学习笔记
AQin1012
少年有他的山海
展开
-
【JUC】Java并发编程从挖坑到入土全解(4-一文讲通LockSupport与线程中断->长图预警)
首先,一个线程不应该由其他线程强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运(所以,Thread的stop()、suspend()、resume()都已经废弃了)其次,在Java中没有办法立即停止一条线程,然而停止线程又显得那么重要(比如需要取消一个耗时/错误操作)。因此,Java提供了一种用于停止线程的协商机制——中断,也即中断标识协商机制。中断只是一种协作协商机制,Java没有给中断增加任何语法,中断的过程完成完全要求程序员自己实现。原创 2023-10-10 15:46:15 · 456 阅读 · 11 评论 -
【JUC】Java并发编程从挖坑到入土全解(3-线程池源码分析)
在web开发中,服务器会为每一个请求分配一个线程来处理,如果每次请求都要创建一个线程的话,实现起来虽然简单,但是存在一个问题:如果开发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此会大大降低系统的效率,很有可能出现服务器在创建和销毁线程上花费的时间和消耗的系统资源比实际处理的用户请求的时间和资源还多。于是,线程池应运而生,线程池满足了一个线程执行完一个任务不会被销毁,而是可以继续执行其他任务的目的。原创 2023-09-28 11:34:39 · 364 阅读 · 13 评论 -
【JUC】Java并发编程从挖坑到入土全解(2-当我们聊锁时,锁的到底是什么)
当对方法加synchronized关键字时,锁的是当前对象(this),所以即使是多线程只要调用的是同一个对象的synchronized方法,就需要串行执行(案例1和案例2),未被synchronized修饰的普通方法则不受影响(案例3)如果是不同对象则不受影响(案例4),分别在自己的对象上加锁,不会影响到别的对象当在带有“static”的方法上加了synchronized关键字时,锁的是当前类,无论几个对象,都要抢类的这一把锁,因而是否使用同一对象都会串行执行。原创 2023-09-17 18:35:37 · 165 阅读 · 2 评论 -
【JUC】Java并发编程从挖坑到入土全解(1-直达底层源码的线程基础)
JUC全称java.util.concurrent ,是在并发编程中使用的工具包。原创 2023-09-12 18:01:35 · 159 阅读 · 1 评论