Java并发编程
不学到秃头不改名
大三 很菜
展开
-
大厂面试题:两个线程交叉打印,一个打印数字,一个打印小写字母,结果为 1A2B3C4D5E6F
前言:这道题主要考察的就是,多线程之间的通信、唤醒、切换问题。 B站上看到马士兵老师的视频:这道大厂面试题区分平庸与卓越 部分解法整理如下: LockSupport实现方式 /** * @ClassName: LockSupport * @description: 两个线程交叉打印,一个打印数字,一个打印小写字母,结果为 1A2B3C4D5E6F * LockSupport实现 ...原创 2020-03-15 20:53:38 · 815 阅读 · 5 评论 -
解决List集合不安全问题的方法
/** * @ClassName: NotSafeDemo * @description: * @author: XZQ * @create: 2020/1/17 21:35 * 1、存在问题 java.util.ConcurrentModificationException * 2、解决方案 * 1、Vector * 2、Collections.synchron...原创 2020-01-17 22:52:51 · 878 阅读 · 0 评论 -
synchronized和lock有什么区别,用lock有什么好处
1. 层面 synchronized属于jvm层面,是java的关键字,是内置特性;而Lock属于api层面,是java5后产生的一个接口 2. 释放锁 synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会自动让线程释放对锁的占用;而Lock则必须要用户去手动释放锁,如果没有主动释放锁,就有可能导致出现死锁...原创 2020-01-06 21:22:30 · 568 阅读 · 0 评论 -
Java并发之CountDownLatch、CyclicBarrier、Semaphore使用实例
最近学习了Java并发编程中的CountDownLatch、CyclicBarrier、Semaphore,做个小总结。 这三个类都是java1.5中提供的一些非常有用的辅助类,用于帮助程序员实现并发编程。 CountDownLatch 背景 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDown...原创 2020-01-06 12:05:42 · 760 阅读 · 0 评论