并发

并发

线程

Thread Runnable

中断线程

  • interrupt
  1. 调用该方法,线程的中断状态将被设置为true
  2. 被中断的线程调用isInterrupted判断是否被请求中断
  3. 如果被请求的线程被阻塞,将会抛出InterruptedException,而且线程的中断状态将会被清除
  • interrupted

静态方法,调用该方法将检测当前线程是否被中断,并清除中断状态

  • isInterrupted

实例方法

  • InterruptedException

线程状态

  1. NEW
  2. Runnable
  3. Blocked
  4. Waiting
  5. Timed waiting
  6. Terminated

状态之间的转换图

线程属性

  1. 优先级
  2. 守护线程
  3. 未捕获异常处理

同步

  1. 竞争条件
  2. 锁对象

synchronized ReentrantLock

  1. 条件对象

Condition await SignalAll

  1. synchronized关键字
  2. 同步阻塞
  3. 监视器概念
  4. volatile域
  5. final变量
  6. 原子性
  7. 死锁
  8. 线程局部变量
  9. 锁测试与超时
  10. 读写锁
  11. 为什么弃用stop和suspend

阻塞队列

BlockingQueue ArrayBlockingQueue LinkedBlockingQueue DelayQueue Delayed PriorityBlockingQueue BlockingDeque TransferQueue

线程安全的集合

  1. 高效的映射, 集合队列

ConcurrentHashMap ConcurrentSkipListMap ConcurrentLinkedQueue

  1. 映射条目的原子更新
  • replace
  • putIfAbsent increment
  • compute computeIfAbsent merge computeIfPresent
  1. 对并发散列映射的批操作
  • 搜索: searchKeys searchValues search searchEntries
  • 规约: reduceKyes reduceValues reduce reduceEntries
  • forEach:
  1. 并发集视图
  • ConcurrentHashMap.newKeySet
  • map.keySet(1L)
  1. 写数组拷贝
  • CopyOnWriteArrayList
  • CopyOnWriteArraySet
  1. 并行数组算法

Arrays类提供了大量并行化操作

  1. 较早的线程安全集合

Callable与Future

  • Callable
  • Future
  • FutureTask

执行器

Executor

  1. 线程池
  • newCachedThreadPool
  • newFixedThreadPool
  • newSingleTreadExecutor
  • ExecutorService
  1. 预定执行
  • ScheduledExecutorService
  • newScheduledThreadPool
  • newSingleThreadScheduledExecutor
  1. 控制任务组
  • shutdownNow
  • invokeAny
  • invokeAll
  • ExecutorCompletionService
  1. Fork-join框架
  2. 可完成Future
  • CompletableFuture

同步器

  1. 信号量Semaphore
  2. 倒计时门栓 CountDownLatch
  3. 障栅 CyclicBarrier
  4. 交换器 Exchanger
  5. 同步队列 SynchronousQueue

线程与Swing

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.线程安全性 线程安全是建立在对于对象状态访问操作进行管理,特别是对共享的与可变的状态的访问 解释下上面的话: ...
    黄大大吃不胖阅读 876评论 0 3
  • layout: posttitle: 《Java并发编程的艺术》笔记categories: Javaexcerpt...
    xiaogmail阅读 5,875评论 1 19
  • 第三章 Java内存模型 3.1 Java内存模型的基础 通信在共享内存的模型里,通过写-读内存中的公共状态进行隐...
    泽毛阅读 4,383评论 2 22
  • 一、并发 进程:每个进程都拥有自己的一套变量 线程:线程之间共享数据 1.线程 Java中为多线程任务提供了很多的...
    SeanMa阅读 2,541评论 0 11
  • 晚上七点半,鹿晗和温桉桉到了机场。 鹿晗一路上都在啰嗦,让温桉桉好好照顾自己。 “我又不是刚生下来的婴儿,难道还不...
    鹿沝阅读 458评论 0 2