
多线程
何时逸
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
synchronized底层实现
synchronized底层实现 synchronized依赖cas CAS、 Compare and swap 比较和替换 比较和替换 cas操作有三个参做(变量位置 期望的变量,新的值) 其中张三就是一个线程 卫生间的门上的锁就是此处的锁 卫生间就是众多线程要访问的对象 synchronized底层其实是一个锁升级的过程, 无锁:当没有线程访问一个对象的时候,此时是无锁状态, 偏向锁:当有一个线程访问这个对象的时候(将自己的线程id存到对象头markword里面),锁升级为偏向锁,或者自原创 2021-04-14 22:34:16 · 122 阅读 · 0 评论 -
volatile底层实现
synchronized 底层实现 代码层级 加synchronized 关键字,锁定的是一个对象 虚拟机层级 依靠CAS(Compare and swap)比较和替换,实现锁机制 什么是cas 上图就是cas操作,cas包含三个操作数(对象所在的位置,期望的值、要更新的值)cas是原子操作 张三就是线程 卫生间门上的锁就是此处的锁 卫生间就是对像 synchronized 其实是一个锁升级的过程, 1、无锁:最开始是无锁状态 没有线程占用 此时对象头markword 的锁状态原创 2021-04-14 21:04:51 · 110 阅读 · 0 评论 -
Java_—多线程的引入/并发和并行的区别
一、什么是多线程 线程是程序执行的一条路径, 一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率, 可以同时完成多项工作 二、多线程的应用场景 迅雷开启多条线程一起下载 QQ同时和多个人一起视频 服务器同时处理多个客户端请求 三、多线程并行和并发的区别 并行:是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU) 比如我跟两个网友聊天,左手操作一个电脑跟甲聊,同时右...转载 2019-12-05 10:12:22 · 125 阅读 · 0 评论