• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






唯💗独爱你

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2023年3月14日

Semaphore__控制访问特定资源的线程数量
摘要: 使用场景:可以控制访问特定资源的线程数量。 示例:有一条窄道,一次只能允许通行两辆车,通行前由管理员发通行证,通行后归还通行证。 public class SemaphoreDemo { public static void main(String[] args) { MyRunnable mr = 阅读全文
posted @ 2023-03-14 21:15 唯💗独爱你 阅读(13) 评论(0) 推荐(0)
 
CountDownLatch__让某一条线程等待其它线程执行完毕后再执行
摘要: 使用场景:让某一条线程等待其它线程执行完毕后再执行。 CountDownLatch cdl = new CountDownLatch(3):参数是等待线程的数量,并定义了一个计时器; await():让线程等待,当计时器为0时,唤醒线程; countDown():线程执行完毕时调用,计时器会减1; 阅读全文
posted @ 2023-03-14 20:53 唯💗独爱你 阅读(43) 评论(0) 推荐(0)
 
HashMap、Hashtable、ConcurrentHashMap线程安全问题
摘要: public class HashMapDemo { public static void main(String[] args) throws InterruptedException { // HashMap是线程不安全的 // Hashtable是线程安全的,采用悲观锁synchronized 阅读全文
posted @ 2023-03-14 20:28 唯💗独爱你 阅读(28) 评论(0) 推荐(0)
 
synchronized和CAS区别
摘要: 阅读全文
posted @ 2023-03-14 11:34 唯💗独爱你 阅读(19) 评论(0) 推荐(0)
 
原子性&AtomicInteger
摘要: volatile关键字不能保证原子性,synchronized可以保证原子性,但是比较消耗资源。 Atomic工具类可以安全有效的解决原子性问题 基本用法: /** * Atomic工具类可以有效安全的解决数据的原子性问题 */ public class AtomicDemo { public st 阅读全文
posted @ 2023-03-14 10:56 唯💗独爱你 阅读(28) 评论(0) 推荐(0)
 
volatile解决获取共享数据的问题
摘要: 1、堆内存是唯一的,每一个线程有自己的线程栈; 2、每一个线程在使用堆内存中的变量时,会拷贝一份变量副本,然后使用变量副本,这样运行的会更快一点; 3、在线程中,每一次使用都是从变量的副本中获取。 综上所述,在线程运行时可能会出现问题:如果A线程修改了堆中的共享变量的值,那么其它线程不一定能及时使用 阅读全文
posted @ 2023-03-14 09:55 唯💗独爱你 阅读(20) 评论(0) 推荐(0)