摘要: Java的线程既是工作单元,也是执行机制。从jdk5开始,把工作单元与执行机制分离开来。工作单元包括Runnable和Callable,执行机制由Executor来提供 10.1Executor框架简介 10.1.1Executor框架的两级调度模型 在上层,Java多线程程序通常把应用分解为若干任 阅读全文
posted @ 2019-10-28 18:20 helloworldmybokeyuan 阅读(116) 评论(0) 推荐(0) 编辑
摘要: Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或者并发执行的程序都可以使用线程池。在开发过程中,合理使用线程池能够带来3个好处。 第一:降低资源消耗 第二:提高响应速度 第三:提高线程的可管理性 9.1 线程池的实现原理 线程池的主要处理流程,处理流程图如图9-1所示 1)线程池判断核 阅读全文
posted @ 2019-10-28 17:34 helloworldmybokeyuan 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 在JDK的并发包里提供了几个非常有用的并发工具类。CountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger工具类则提供了在线程间交换数据的一种手段。 8.1等待多线程完成的CountDownLatch CountDownLat 阅读全文
posted @ 2019-10-28 16:56 helloworldmybokeyuan 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 原子操作类是多线程更新变量的一种用法简单、性能高效的方式,在Atomic包里一共提供了13个类,属于4种类型的原子更新方式,分别是原子更新基本类型、原子更新引用和源自更新属性。Atomic包里的类基本上都是用Unsafe实现的包装类。 7.1原子更新基本类型 AtomicBoolean 略 Atom 阅读全文
posted @ 2019-10-28 15:52 helloworldmybokeyuan 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 6.1 ConcurrentHashMap 略(请查看已有的其它笔记) 6.2 ConcurrentLinkedQueue 在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法。 使用阻塞算法的队列可以用一个锁(入队和出队用同 阅读全文
posted @ 2019-10-28 15:36 helloworldmybokeyuan 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 本章将介绍Java并发包中与锁相关的API和组件,以及这些API和组件的使用方式和实现细节、 锁是面向使用者的,它定义了使用者与锁交互的接口(比如可以允许两个线程并行访问),隐藏了实现细节; 同步器面向的是锁的实现者,它简化了锁的实现方式,屏蔽了同步状态管理、线程的排队、等待与唤醒等底层操作。锁和同 阅读全文
posted @ 2019-10-28 10:48 helloworldmybokeyuan 阅读(221) 评论(0) 推荐(0) 编辑