随笔分类 -  并发编程

摘要:目录 ConcurrentHashMap 2 预备知识 2 Hash 2 位运算 2 1.7中原理和实现 3 ConcurrentHashMap中的数据结构 3 初始化做了什么事? 4 在get和put操作中,是如何快速定位元素放在哪个位置的? 5 get()方法 6 put()方法 6 扩容操作 阅读全文
posted @ 2020-02-02 20:46 Mogle 阅读(196) 评论(0) 推荐(0)
摘要:4、显式锁和AQS 显式锁 Lock接口和核心方法 package com.xiangxue.ch4; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @au 阅读全文
posted @ 2020-02-01 12:41 Mogle 阅读(197) 评论(0) 推荐(0)
摘要:3、原子操作CAS Atom(不可分割) 什么是原子操作?如何实现原子操作? syn基于阻塞的锁的机制,1、被阻塞的线程优先级很高,2、拿到锁的线程一直不释放锁怎么办?3、大量的竞争,消耗cpu,同时带来死锁或者其他安全。 CAS的原理 CAS(Compare And Swap),指令级别保证这是一 阅读全文
posted @ 2020-02-01 12:08 Mogle 阅读(181) 评论(0) 推荐(0)
摘要:1、线程的并发工具类 Fork-Join 什么是分而治之? 规模为N的问题,N<阈值,直接解决,N>阈值,将N分解为K个小规模子问题,子问题互相对立,与原问题形式相同,将子问题的解合并得到原问题的解 动态规范 工作密取 workStealing Fork/Join使用的标准范式 下面演示第一种用法: 阅读全文
posted @ 2020-01-31 13:02 Mogle 阅读(202) 评论(0) 推荐(0)
摘要:1、线程基础、线程之间的共享和协作 基础概念 CPU核心数和线程数的关系 核心数:线程数=1:1 ;使用了超线程技术后 > 1:2 CPU时间片轮转机制 又称RR调度,会导致上下文切换 什么是进程和线程 进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源 线程:CPU调度的最 阅读全文
posted @ 2020-01-31 12:27 Mogle 阅读(153) 评论(0) 推荐(0)