• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
xiaoyaovo
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
2021年8月16日
CAS 浅析(原理、实现自旋锁、ABA的产生与解决)
摘要: 目录 什么是 CASCAS 原理CAS 实现自旋锁CAS 实现原子类ABA 问题如何解决 ABA 什么是 CAS CAS(compare and swap),比较与交换。 如果普通的比较与交换 public void compareAndSwap(int num1, int num2) { if ( 阅读全文
posted @ 2021-08-16 11:35 豆本豆红枣豆奶 阅读(79) 评论(0) 推荐(0)
【剑指 Offer II 】 14. 字符串中的变位词
摘要: 题目 链接【剑指 Offer II 】 14. 字符串中的变位词 描述 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。 换句话说,第一个字符串的排列之一是第二个字符串的 子串 输入与输出 输入: s1 = “ab” s2 = “eidbaooo” 输出: Tr 阅读全文
posted @ 2021-08-16 02:53 豆本豆红枣豆奶 阅读(11) 评论(0) 推荐(0)
2021年8月15日
一个例子带你了解【死锁的原因】以及【解决的方法】
摘要: 原因 常见的场景 一个线程一把锁 正常情况下,一个线程只能有一把锁,当这个线程想上第二把锁的时候,要释放第一把锁,才能上第二把锁; 而如果想要同时拥有两把锁,那么就是互相矛盾的。 而 Java 中 synchronized 已经对这个问题进行了优化。 在 synchronized 中,有一个变量专门 阅读全文
posted @ 2021-08-15 23:55 豆本豆红枣豆奶 阅读(32) 评论(0) 推荐(0)
可重入锁和不可重入锁
摘要: 可重入锁与不可重入锁 简单点理解 可重入锁:如果同一个线程加两把锁,不会出现问题的叫 可重入锁;不可重入锁:而会出现问题的叫 不可重入锁。 正常情况下,线程 A 加了锁 1,然后又要加锁 2,但是线程 A 要加锁 2 就必须释放锁 1,但是释放锁 1 就达不到沃目的(目的是加锁 1 和 锁 2),因 阅读全文
posted @ 2021-08-15 20:13 豆本豆红枣豆奶 阅读(35) 评论(0) 推荐(0)
公平锁与非公平锁
摘要: 公平锁与非公平锁 首先理解 公平 与 非公平 ,公平就是 不插队,非公平就是 插队。 操作系统调度线程的方式就是 随机的,也就是说是 非公平锁。 Java 中 synchronized 是 非公平锁。(自旋锁 也是 非公平锁) 如果想实现非公平锁,那么就需要做出额外的处理: 记录每个线程竞争锁的时间 阅读全文
posted @ 2021-08-15 19:22 豆本豆红枣豆奶 阅读(8) 评论(0) 推荐(0)
重量级锁和轻量级锁(自旋锁)
摘要: 重量级锁和轻量级锁 重量级锁和轻量级锁 一般(一般一般一般) 类似于悲观锁和乐观锁,站在了不同的角度划分的。 轻量级锁又叫自旋锁。 重量级锁与轻量级锁是站在 工作量 的角度来划分的; 而乐观锁和悲观锁则是站在 锁冲突概率 来划分的。 重量级锁:我们知道,我们要进入一个同步、线程安全的方法时,是需要先 阅读全文
posted @ 2021-08-15 19:04 豆本豆红枣豆奶 阅读(38) 评论(0) 推荐(0)
浅析读写锁
摘要: 读写锁 读写锁是一种特殊的锁,该锁把读操作和写操作分开了。 普通的锁提供了两个操作:加锁和解锁; 读写锁提供了三个操作:读加锁、写加锁和 解锁; 在有的场景中,只有少部分线程进行写操作,而大多数线程进行读操作。 读操作和写操作之间不需要保证原子性;读操作和读操作之间不需要保证原子性、内存可见性和禁止 阅读全文
posted @ 2021-08-15 18:16 豆本豆红枣豆奶 阅读(19) 评论(0) 推荐(0)
乐观锁和悲观锁
摘要: 乐观锁和悲观锁 乐观锁和悲观锁都是一种锁策略,也就是如何设计锁。 乐观锁:认为这个锁出现竞争的概率比较小(当前场景中,线程数目比较少,只是偶尔竞争一下锁) 悲观锁:和乐观锁相反,悲观锁出现竞争的概率比较大(当前场景中,线程数目比较多,很可能涉及竞争锁) 根据乐观锁和悲观锁的比较,可以得知乐观锁需要做 阅读全文
posted @ 2021-08-15 17:57 豆本豆红枣豆奶 阅读(6) 评论(0) 推荐(0)
线程不安全的原因以及解决方法
摘要: 线程不安全的原因 首先要了解使用多线程的原因,以 杀毒软件 为例。 使用单线程 想要执行 病毒查杀 和 清理垃圾,那么只能先执行 病毒查杀 和 清理垃圾 的其中一个,再执行另外一个。使用多线程 可以 同时执行 清理垃圾 和 病毒查杀。 但是问题随之而来,下边将解析多线程的安全问题。 抢占式执行(线程 阅读全文
posted @ 2021-08-15 02:16 豆本豆红枣豆奶 阅读(65) 评论(0) 推荐(0)
Thread 和 Runnable 的区别
摘要: 今天在学习多线程的时候,了解了 创建线程的几种方式,然后就脑子发热,突然想到 Thread 和 Runnable 创建线程有什么区别吗?毕竟是长得都不一样。所以我就找了一些资料(CSDN 大佬们的文章)来看看,有了一些理解。 明确一点:Runnable 和 Thread 本质上是没有区别的。 区别 阅读全文
posted @ 2021-08-15 00:21 豆本豆红枣豆奶 阅读(43) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3