并发
线程
Thread Runnable
中断线程
- interrupt
- 调用该方法,线程的中断状态将被设置为true
- 被中断的线程调用isInterrupted判断是否被请求中断
- 如果被请求的线程被阻塞,将会抛出InterruptedException,而且线程的中断状态将会被清除
- interrupted
静态方法,调用该方法将检测当前线程是否被中断,并清除中断状态
- isInterrupted
实例方法
- InterruptedException
线程状态
- NEW
- Runnable
- Blocked
- Waiting
- Timed waiting
- Terminated
状态之间的转换图
线程属性
- 优先级
- 守护线程
- 未捕获异常处理
同步
- 竞争条件
- 锁对象
synchronized ReentrantLock
- 条件对象
Condition await SignalAll
- synchronized关键字
- 同步阻塞
- 监视器概念
- volatile域
- final变量
- 原子性
- 死锁
- 线程局部变量
- 锁测试与超时
- 读写锁
- 为什么弃用stop和suspend
阻塞队列
BlockingQueue ArrayBlockingQueue LinkedBlockingQueue DelayQueue Delayed PriorityBlockingQueue BlockingDeque TransferQueue
线程安全的集合
- 高效的映射, 集合队列
ConcurrentHashMap ConcurrentSkipListMap ConcurrentLinkedQueue
- 映射条目的原子更新
- replace
- putIfAbsent increment
- compute computeIfAbsent merge computeIfPresent
- 对并发散列映射的批操作
- 搜索: searchKeys searchValues search searchEntries
- 规约: reduceKyes reduceValues reduce reduceEntries
- forEach:
- 并发集视图
- ConcurrentHashMap.newKeySet
- map.keySet(1L)
- 写数组拷贝
- CopyOnWriteArrayList
- CopyOnWriteArraySet
- 并行数组算法
Arrays类提供了大量并行化操作
- 较早的线程安全集合
Callable与Future
- Callable
- Future
- FutureTask
执行器
Executor
- 线程池
- newCachedThreadPool
- newFixedThreadPool
- newSingleTreadExecutor
- ExecutorService
- 预定执行
- ScheduledExecutorService
- newScheduledThreadPool
- newSingleThreadScheduledExecutor
- 控制任务组
- shutdownNow
- invokeAny
- invokeAll
- ExecutorCompletionService
- Fork-join框架
- 可完成Future
- CompletableFuture
同步器
- 信号量Semaphore
- 倒计时门栓 CountDownLatch
- 障栅 CyclicBarrier
- 交换器 Exchanger
- 同步队列 SynchronousQueue
网友评论