首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
冰小毛
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
图解Java线程池原理
为了避免频繁重复的创建和销毁线程,我们可以让这些线程进行复用,在线程池中,总会有活跃的线程在占用,但是线程池中也会存在没有占用的线程,这些线程处于空闲状态,当有任务的时候会从池子里面拿去一个线程来进行使用,当完成工作后,并没有销毁线程,而是将线程放回到池子中去。 上面内容出自《…
Java并发编程的艺术(十二)——线程池
●降低资源的损耗。重复利用创建好的线程,减少了线程创建和销毁的开销。 ●提高响应速度。当任务来临时,创建好的线程能立马处理新来的任务,不需要等待线程创建完毕后再执行任务。 ●方便线程的管理。线程是稀缺资源,过多的创建线程可能会降低系统的稳定性,线程池能控制线程创建的数量,并对其…
Java并发编程的艺术学习笔记(四)
1. Java线程的状态 初始状态,创建线程但还没有调用start()方法。 运行状态,Java线程的运行状态包括运行和就绪两种状态。 阻塞状态,线程获取锁失败时进入阻塞状态。 等待状态,进入等待状态的线程要需要等待其他线程的一些特定动作,如通知或中断。 终止状态,表示退出当前…
Java并发编程的艺术学习笔记(三)
●保证处理器的重排序不影响并发编程。 ●对于普通方法来说,锁是当前实例对象。 ●对于静态方法来说,锁是当前类的Class对象。 ●对于同步块来说,锁是synchronize括号里的对象。 2. Java对象头 Java对象头主要由两部分组成:Mark Work 和类型指针。 ●…
异步编程解决方案全集—promise、generator+co、async+await
传统的解决代码单线程执行的方案是回调函数和事件。这是个解决问题的方案,但是会造成回调地狱。 异步编程是优化代码逻辑提高代码易读性的关键。 这三种方法我都经常在用,但是对它们的原理却一知半解。于是想炒个冷饭从头到尾理一遍,梳理一下它们之间的关系。 Promise对象是一个构造函数…
java多线程系列:CountDownLatch
这篇文章将介绍CountDownLatch这个同步工具类的基本信息以及通过案例来介绍如何使用这个工具。 CountDownLatch是java.util.concurrent包下面的一个工具类,可以用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 …
面试必备:Java AQS 实现原理(图文)分析[精品长文]
AQS的实现是基于一个FIFO的等待队列。 使用单个原子变量来表示获取、释放锁状态(final int)改变该int值使用的是CAS。(思考:为什么一个int值可以保证内存可见性?) 子类应该定义一个非公开的内部类继承AQS,并实现其中方法。 AQS支持exclusive与sh…
非常硬核的技术知识-CopyOnWrite思想
大家可以设想一下现在我们的内存里有一个ArrayList,这个ArrayList默认情况下肯定是线程不安全的,要是多个线程并发读和写这个ArrayList可能会有问题。 有一个非常简单的办法,对这个ArrayList的访问都加上线程同步的控制。 比如说一定要在synchroni…
Java并发(11)- 有关线程池的10个问题
在日常开发中,线程池是使用非常频繁的一种技术,无论是服务端多线程接收用户请求,还是客户端多线程处理数据,都会用到线程池技术,那么全面的了解线程池的使用、背后的实现原理以及合理的优化线程池的大小等都是非常有必要的。这篇文章会通过对十个常见问题的解答来讲解线程池的基本功能以及背后的…
Java并发—— CountDownLatch与CyclicBarrier
CountDownLatch闭锁相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过,当到达结束状态时,这扇门会打开并允许所有的线程通过。当闭锁到达结束状态后,将不会再改变状态,门永远保持打开状态 CountDownLatch通过内部类Sync实现方…