多线程_并发编程
文章平均质量分 91
多线程、并发编程相关
xingze_W
Stay hungry, Stay young!!!
展开
-
HashMap详解、ConcurrentHashMap、Hashtable、SynchronizedMap
HashMap简介1.1 HashMap的底层数据结构1.2 为什么链表改为红黑树的阈值是 8?1.3 解决hash冲突的办法有哪些?HashMap用的哪种?1.4 为什么在解决 hash 冲突的时候,不直接用红黑树?而选择先用链表,再转红黑树?1.5 HashMap默认加载因子是多少?为什么是 0.75,不是 0.6 或者 0.8 ?1.6 HashMap 中 key 的存储索引是怎么计算的?1.7 为什么 hash 值要与length-1相与?1.8 HashMap数组的长度为什么是原创 2019-10-26 09:35:48 · 434 阅读 · 1 评论 -
CopyOnWriteArraySet(不完整)
文章目录1. CopyOnWriteArraySet2. CopyOnWriteArraySet原理1. CopyOnWriteArraySetCopyOnWriteArraySet是在CopyOnWriteArrayList的基础上使用了Java的装饰器模式,很多方法如底层使用了CopyOnWriteArrayList来存储数据,remove()方法调用CopyOnWriteArrayLis...原创 2019-12-02 19:31:50 · 157 阅读 · 0 评论 -
JUC下的atomic包(java.util.concurrent.atomic,i++线程安全问题)
文章目录java.util.concurrent.atomic包CAS算法java.util.concurrent.atomic包在Java5.0后,java.util.concurrent.atomic包下提供了常用的原子变量。里面的值具有以下特性:volatile保证内存可见性CAS(Compare And Swap)算法保证数据的原子性以CAS算法CAS算法是硬件(操作...原创 2019-11-30 17:52:40 · 240 阅读 · 0 评论 -
Java线程的状态(6种)、线程间通信(3种方式)
1. Java线程的状态1.1 NEW(新建状态)1.2 RUNNABLE(可运行/就绪状态)1.3 BLOCKED(阻塞状态)1.4 WAITING(等待状态)1.5 TIMED_WAITING(定时等待)1.6 TERMINATED(终止状态)2. 线程间通信2.1.sleep()结合 while(true)死循环法实现多个线程间通信2.2 等待/通知机制(重点)2.3 使用Condition和ReentrantLock实现等待/通知(线程间通信)原创 2019-11-08 16:26:31 · 359 阅读 · 0 评论 -
wait、sleep、join方法的区别
sleep让当前线程暂停指定时间,暂停时间的准确性由操作系统决定不释放获得的锁资源,其他线程无法进入当前线程可通过调用interrupt()方法来唤醒休眠线程不需要在同步方法或同步块中调用sleep()是属于Thread类的静态方法wait只能在同步方法或同步代码块中使用wait会释放对象获得的锁资源别的其他线程调用notify()或者notifyAll()方法时,当前线程...原创 2019-09-10 19:52:10 · 288 阅读 · 0 评论 -
并发编程一(基础知识:缓存、进程、线程(状态)、Java创建线程的四种方式、 线程控制、死锁)
1. 缓存2. 进程与线程2.1 进程2.2. 进程调度2.3. 线程2.4 Java创建线程的方式3. 线程控制3.1 暂停线程join3.2 线程睡眠sleep3.3 线程让步yield3.3 sleep()和yield()的区别3.4 改变线程优先级4. 死锁原创 2019-09-16 18:21:12 · 214 阅读 · 0 评论 -
并发编程二(JMM模型、volatile、volatile和synchronized的区别)
1. JMM模型2. volatile原创 2019-09-17 09:01:41 · 120 阅读 · 1 评论 -
并发编程三(同步器、synchronized原理、synchronized的优化)
1. 同步器的意义2. 如何解决线程并发安全问题?3. synchronized3.1 synchronized底层原理4. synchronized的优化原创 2019-12-03 09:03:54 · 204 阅读 · 0 评论 -
并发编程四(AQS、ReentrantLock、ReadWriteLock接口和ReetrantReadWriteLock实现类)
1. AQS1.1 CAS1.2 AQS特性1.3 AQS源码分析1.4 AQS的常用实现类2. ReentrantLock2.1 ReentrantLock特性2.2 ReentrantLock底层原理2.3 ReentrantLock和synchronized的区别3. ReadWriteLock接口和ReetrantReadWriteLock实现类3.1 ReetrantReadWriteLock实现类的特性、方法3.2 ReetrantReadWriteLock原理原创 2019-12-02 19:10:28 · 234 阅读 · 0 评论 -
并发编程五(AQS应用之BlockingQueue(同步阻塞队列))
文章目录1. Queue、Deque、BlockingQueue2. BlockingQueue3. BlockingQueue的实现类(7种)3.1 ArrayBlockingQueue3.2 LinkedBlockingQueue3.3 PriorityBlockingQueue3.4 DelayQueue3.5 SynchronousQueue3.6 LinkedBlockingDeque3...原创 2019-12-02 21:43:54 · 513 阅读 · 0 评论 -
并发编程六(Semaphore、CountDownLatch、CyclicBarrier)Executors
1. Semaphore(信号量)2. CountDownLatch(闭锁/倒计时锁)2.1 CountDownLatch源码2.2. CountDownLatch简单实际使用3. CyclicBarrier3.1 CyclicBarrier简单使用3.2 CyclicBarrier和CountDownLatch的区别4. Executors原创 2019-11-30 17:52:10 · 212 阅读 · 0 评论 -
并发编程八(线程池、ThreadPoolExecutor、参数设置、优雅关闭线程池、使用建议)
1. 线程池2. 创建线程池3. ThreadPoolExecutor的核心参数4. 任务提交给线程池之后的执行流程5. 线程池参数设置6. 线程池的五种状态7. 线程池中可用于执行任务的方法原创 2019-12-03 18:43:21 · 1914 阅读 · 1 评论