
多线程_并发编程
文章平均质量分 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 · 1094 阅读 · 1 评论 -
CopyOnWriteArraySet(不完整)
文章目录1. CopyOnWriteArraySet2. CopyOnWriteArraySet原理 1. CopyOnWriteArraySet CopyOnWriteArraySet是在CopyOnWriteArrayList的基础上使用了Java的装饰器模式,很多方法如底层使用了CopyOnWriteArrayList来存储数据,remove()方法调用CopyOnWriteArrayLis...原创 2019-12-02 19:31:50 · 196 阅读 · 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 · 313 阅读 · 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 · 606 阅读 · 0 评论 -
wait、sleep、join方法的区别
sleep 让当前线程暂停指定时间,暂停时间的准确性由操作系统决定 不释放获得的锁资源,其他线程无法进入当前线程 可通过调用interrupt()方法来唤醒休眠线程 不需要在同步方法或同步块中调用 sleep()是属于Thread类的静态方法 wait 只能在同步方法或同步代码块中使用 wait会释放对象获得的锁资源 别的其他线程调用notify()或者notifyAll()方法时,当前线程...原创 2019-09-10 19:52:10 · 423 阅读 · 0 评论 -
并发编程一(基础知识:缓存、进程、线程(状态)、Java创建线程的四种方式、 线程控制、死锁)
1. 缓存 2. 进程与线程 2.1 进程 2.2. 进程调度 2.3. 线程 2.4 Java创建线程的方式 3. 线程控制 3.1 暂停线程join 3.2 线程睡眠sleep 3.3 线程让步yield 3.3 sleep()和yield()的区别 3.4 改变线程优先级 4. 死锁原创 2019-09-16 18:21:12 · 282 阅读 · 0 评论 -
并发编程二(JMM模型、volatile、volatile和synchronized的区别)
1. JMM模型 2. volatile原创 2019-09-17 09:01:41 · 160 阅读 · 1 评论 -
并发编程三(同步器、synchronized原理、synchronized的优化)
1. 同步器的意义 2. 如何解决线程并发安全问题? 3. synchronized 3.1 synchronized底层原理 4. synchronized的优化原创 2019-12-03 09:03:54 · 347 阅读 · 0 评论 -
并发编程四(AQS、ReentrantLock、ReadWriteLock接口和ReetrantReadWriteLock实现类)
1. AQS 1.1 CAS 1.2 AQS特性 1.3 AQS源码分析 1.4 AQS的常用实现类 2. ReentrantLock 2.1 ReentrantLock特性 2.2 ReentrantLock底层原理 2.3 ReentrantLock和synchronized的区别 3. ReadWriteLock接口和ReetrantReadWriteLock实现类 3.1 ReetrantReadWriteLock实现类的特性、方法 3.2 ReetrantReadWriteLock原理原创 2019-12-02 19:10:28 · 306 阅读 · 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 · 755 阅读 · 0 评论 -
并发编程六(Semaphore、CountDownLatch、CyclicBarrier)Executors
1. Semaphore(信号量) 2. CountDownLatch(闭锁/倒计时锁) 2.1 CountDownLatch源码 2.2. CountDownLatch简单实际使用 3. CyclicBarrier 3.1 CyclicBarrier简单使用 3.2 CyclicBarrier和CountDownLatch的区别 4. Executors原创 2019-11-30 17:52:10 · 281 阅读 · 0 评论 -
并发编程八(线程池、ThreadPoolExecutor、参数设置、优雅关闭线程池、使用建议)
1. 线程池 2. 创建线程池 3. ThreadPoolExecutor的核心参数 4. 任务提交给线程池之后的执行流程 5. 线程池参数设置 6. 线程池的五种状态 7. 线程池中可用于执行任务的方法原创 2019-12-03 18:43:21 · 2460 阅读 · 1 评论