首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java并发编程实战
订阅
城南少年与猫
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
锁的分类以及相关讲解
自旋锁: 线程状态及上下文切换消耗系统资源,当访问共享资源的时间短,频繁上下文切换不值得。jvm实 人有没有去更新这个数据,可以使用版本号等机制。 lock 获取锁与释放锁的过程,都需要程序员手动的控制 Lock用的是乐观锁方式。 所谓乐观锁就是,每次不加锁而是假设没有冲突而去…
线程安全相关问题总结
1. 什么是线程安全性? 要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类为线程安全的。----《并发编程实战》 多线程并发访问时,得不到正确的结果。 2. 从字节码角度剖析线程不安全操作 作,导致线程安全性。 3. 原子性操作 一个操作或者多个操作 要么全部…
线程基础知识归纳
1. 进程与线程的区别 行的基本单位。线程也被称为轻量级进程,线程是程序执行的最小单位。 一个程序至少一个进程,一个进程至少一个线程。 段和数据段,这种操作非常昂贵。 而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个 线程的花费远比进程要小很多,同时创建一个线…
并发编程情况下几个相应问题简介
死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。 例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了。线程1永远得不到B,线程2也永远得不…
Java多线程分批发送消息的小例子
Demo示例:这里为简化展示,模拟示例10条内容,用分页处理的方式来分批发送消息,每批为2条:结构如下:相关类如下:UserEntity:BatchSms:ListUtils:启动后运行结果如下:
同步容器与并发容器
Iterator迭代容器或使用使用for-each遍历容器,在迭代过程中修改容器会抛出ConcurrentModificationException异常。想要避免出现ConcurrentModificationException,就必须在迭代过程持有容器的锁。但是若容器较大,则…
并发编程中的原子类
AtomicMarkableReference:带版本戳的原子引用类型,版本戳为boolean类型。 AtomicStampedReference:带版本戳的原子引用类型,版本戳为int类型。
线程间的通信
3. 使用管道流进行通信 以内存为媒介,用于线程之间的数据传输。 线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储结构。为每个线程单独存放一份变量副本, 也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值。只要线程处于活动状…
JDK提供的并发工具类
应用场景:启动三个线程计算,需要对结果进行累加。 它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据, 时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方。因此使用Exchanger的重点是成对的 线程使用excha…