您的位置:首页 > 其它

多线程知识点

2018-07-19 23:37 288 查看
基本概念

同步异步(Asyc)

并行(Parallelism)、并发(Concurrency)

阻塞(blocking)/非阻塞

临界区

死锁(DeadLock)、饥饿(Starvation)、活锁(LiveLock)

线程三种基本状态

并行定律
并发级别 阻塞(sync),无饥饿(FIFO),无障碍,无锁,无等待  
并发理论(JMM)

内存模型

线程通信,消息传递

happens-before规则

CAS

 
并发关键字

synchronized(Monitor机制 enter/exit),重入性,原子性

volatile(可见,有序 原子)

final:引用类型:只保证引用对象的地址不变,对象的属性是可以改变的

缓存一致性

指令重排序

java对象头,Markword

线程安全

什么时线程安全

原子性,有序性,可见性

指令重排序
Lock 体系

AQS

ReentrantLock

ReentrantReadWriteLock

Condition await/signal

LockSupport

独占锁,共享锁

同步器,CLH同步队列,同步状态的获取和释放,线程阻塞和唤醒

锁降级

Condition的await和signal等待/通知机制

并发容器

ConcurrentHashMap

CopyOnWriteArrayList

ConcurrentLinkedQueue

ThreadLocal

BlockingQueue Array/Linked

扩容

Collections.synchronizedMap

ThreadLocalMap

线程池(Executor体系)

ThreadPoolExecutor

ScheduledThreadPoolExecutor

Callable 和 FutureTask

newWorkStealingPool(int parallelism)
原子操作类

AtomicInteger

AtomicReference

AtomicReferenceArrayFieldUpdater

 
并发工具类

Semaphore:控制并发访问个数,acquire/release

CountDownLatch:倒计时器

CyclicBarrier:循环栅栏

Exchanger:数据交换

 
  Fork/Join ForkJoinPool:利用Work-Stealing算法,并行处理任务,不保证处理顺序
多线程问题

上下文开销

死锁

 
并发模型 Actor  
生产者-消费者    

    java跳表的并发问题
    设计线程池的大小,怎样计算线程池的大小
    线程池的核心参数,在java中的实现,以及任务抛弃策略
    ConCurrentHashMap的架构和如何保证线程安全

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: