并发编程
灬一抹丶清风
棒棒的_(:з」∠)_
展开
-
Java并发编程实战
生产者和消费者模式 生产者和消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通信,而是通过阻塞队列来进行通信,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。 Java中的线程池类其实就是一种生产者和消费者模式的实现方式,但是我觉得其实现方...原创 2019-10-12 10:41:45 · 141 阅读 · 0 评论 -
Executor框架
Executor框架简介 Java的线程既是工作单元,也是执行机制。从JDK 5开始,把工作单元与执行机制分离开来。工作单元包括Runnable和Callable,而执行机制由Executor框架提供。 框架结构 ·Executor是一个接口,它是Executor框架的基础,它将任务的提交与任务的执行分离开来。 ·ThreadPoolExecutor是线程池的核心实现类,用来执行被提交的任...原创 2019-10-12 10:25:01 · 132 阅读 · 0 评论 -
Java中的线程池
在工作中我经常发现,很多人因为不了解线程池的实现原理,把线程池配置错误,从而导致了各种问题。本章介绍了为什么要使用线程池、如何使用线程池和线程池的使用原理,相信阅读完本章之后,读者能更准确、更有效地使用线程池。原创 2019-10-11 15:50:56 · 65 阅读 · 0 评论 -
Java中的并发工具类
等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作。 public class JoinCountDownLatchTest { public static void main(String[] args) throws InterruptedException { Thread parser1 = new Thread(new...原创 2019-10-09 17:13:28 · 66 阅读 · 0 评论 -
Java中的13个原子操作类
在Atomic包里一共提供了13个类,属于4种类型的原子更新方式,分别是原子更新基本类型、原子更新数组、原子更新引用和原子更新属性(字段)。Atomic包里的类基本都是使用Unsafe实现的包装类。 原子更新基本类型类 使用原子的方式更新基本类型,Atomic包提供了以下3个类: ·AtomicBoolean:原子更新布尔类型。 ·AtomicInteger:原子更新整型。 ·AtomicLong...原创 2019-10-09 14:56:07 · 69 阅读 · 0 评论 -
Java并发容器和框架
本章介绍了Java中提供的各种并发容器和框架,并分析了该容器和框架的实现原理,从中我们能够领略到大师级的设计思路,希望读者能够充分理解这种设计思想,并在以后开发的并发程序时,运用上这些并发编程的技巧。原创 2019-10-08 17:58:15 · 67 阅读 · 0 评论 -
Java中的锁
Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用...原创 2019-09-30 16:45:44 · 101 阅读 · 0 评论 -
Java并发编程基础
线程简介 在Java线程中,通过一个整型成员变量priority来控制优先级,优先级的范围从1~10,在线 程构建的时候可以通过setPriority(int)方法来修改优先级,默认优先级是5,优先级高的线程分 配时间片的数量要多于优先级低的线程。 新建(new):新创建了一个线程对象。 可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。...原创 2019-09-29 17:30:45 · 65 阅读 · 0 评论 -
Java内存模型
Java内存模型(JMM)基础 JMM通过控制主内存与每个线程的本地内存之间的交互,来为Java程序员提供内存可见性保证。 JMM属于语言级的内存模型,它确保在不同的编译器和不同的处理器平台之上,通过禁止特定类型的编译器重排序和处理器重排序,为程序员提供一致的内存可见性保证。 重排序 重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段。 在执行程序时,为了提高性能,编译器...原创 2019-09-29 11:38:06 · 121 阅读 · 0 评论 -
Java并发机制的底层实现原理
volatile的应用 volatile的两条实现原则: 1)Lock前缀指令会引起处理器缓存回写到内存。 2)一个处理器的缓存回写到内存会导致其他处理器的缓存无效。 synchronized的的实现原理和应用 重量级锁 ·对于普通同步方法,锁是当前实例对象。 ·对于静态同步方法,锁是当前类的Class对象。 ·对于同步方法块,锁是Synchonized括号里配置的对象。 monitorent...原创 2019-09-25 15:38:29 · 73 阅读 · 0 评论