首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
并发编程(Java实现)
斑鸠喳喳
创建于2024-04-08
订阅专栏
简单聊一聊多线程编程
等 1 人订阅
共5篇文章
创建于2024-04-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
并发概述
并发编程看似复杂,其实也不简单,但只要抓住两点——**修改互斥性**和**内存可见性**,就能够有效地处理大部分的并发问题。
线程 Thread
线程只不过是更“轻量级”的进程,支持快速进行任务切换,从而并发执行更高效,提升 CPU 利用率。线程生命周期,线程异常处理、优雅的结束线程。
同步锁 synchronized
普通对象可以作为互斥锁而存在,普通对象的对象头中的Mark Word部分可以存储线程相关信息,这样线程在进入关键字 `synchronized` 修饰代码(临界区)时就可以查看这个锁有没有被别的线程占
生产者-消费者模式 Producer-Consumer
无论是 `Guarded Suspension` 模式的 `Guarded Object` 还是 `Producer-Consumer` 模式的 `Channel`,都是将守护条件,与对守护条件的操作
原子类型 Atomic
总而言之,CAS 是一种乐观锁机制,在执行操作时假设没有其他线程在竞争,不立即加锁,而是通过检查机制来判断是否需要重新执行或进行其他处理。而 `synchronized` 是一种悲观锁机制,它假设竞争