Java并发包
文章平均质量分 85
LSDNH_csdn
这个作者很懒,什么都没留下…
展开
-
[Java并发包学习一]Excutors和Threads
这份指南将会以简单易懂的代码示例来教给你如何在Java8中进行并发编程。这是一系列教程中的第一部分。在接下来的15分钟,你将会学会如何通过线程,任务(tasks)和 exector services来并行执行代码。第一部分:Threads和Executors 第二部分:同步和锁 并发在Java5中首次被引入并在后续的版本中不断得到增强。在这篇文章中介绍的大部分概念同样适用于以前的Java版本。不转载 2016-06-20 14:12:49 · 1429 阅读 · 0 评论 -
Java中如何中断线程?
终止线程的三种方法: 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。使用退出标志终止线程监视某些条件,结束线程的不间断运行。当run方法执行完后,线程就会退出。但有时r转载 2018-01-28 19:55:00 · 329 阅读 · 0 评论 -
[高并发Java 三] Java内存模型和线程安全
网上很多资料在描述Java内存模型的时候,都会介绍有一个主存,然后每个工作线程有自己的工作内存。数据在主存中会有一份,在工作内存中也有一份。工作内存和主存之间会有各种原子操作去进行同步。下图来源于这篇Blog但是由于Java版本的不断演变,内存模型也进行了改变。本文只讲述Java内存模型的一些特性,无论是新的内存模型还是旧的内存模型,在明白了这些特性以后,看起来也会更加清晰。1转载 2016-09-08 09:34:58 · 468 阅读 · 0 评论 -
[高并发Java 二] 多线程基础
1. 什么是线程线程是进程内的执行单元某个进程当中都有若干个线程。线程是进程内的执行单元。使用线程的原因是,进程的切换是非常重量级的操作,非常消耗资源。如果使用多进程,那么并发数相对来说不会很高。而线程是更细小的调度单元,更加轻量级,所以线程会较为广泛的用于并发设计。在Java当中线程的概念和操作系统级别线程的概念是类似的。事实上,Jvm将会把Java中的线程映射到操作系统转载 2016-09-07 17:42:16 · 445 阅读 · 0 评论 -
[高并发Java 一] 前言
摘要本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍 1.高并发的概念,为以后系列知识做铺垫。 2.两个重要的定理1、关于高并发的几个重要概念1.1 同步和异步首先这里说的同步和异步是指函数/方法调用方面。很明显,同步调用会等待方法的返回,异步调用会瞬间返回,但是异步调用瞬间返回并不代表你的任务就完成了,他会在后台起个线程继续进行任务。转载 2016-09-07 16:06:39 · 316 阅读 · 0 评论 -
[Java并发包学习九]Java中的阻塞队列
什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法:转载 2016-07-02 11:40:21 · 316 阅读 · 0 评论 -
[Java并发包学习八]深度剖析ConcurrentHashMap
概述记得很多面试书中都说到:HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比HashTable性能更优的线程安全的Map类,它就是ConcurrentH转载 2016-07-02 11:38:58 · 271 阅读 · 0 评论 -
[Java并发包学习六]Semaphore介绍
概述emaphore字面意思是信号量。他主要用于控制有限的资源的访问数量。我们看一个生活中常常出现的场景:一个厕所只有3个坑位,但是有10个人来上厕所,那怎么办?假设10的人的编号分别为1-10,并且1号先到厕所,10号最后到厕所。那么1-3号来的时候必然有可用坑位,顺利如厕,4号来的时候需要看看前面3人是否有人出来了,如果有人出来,进去,否则等待。同样的道理,4-10号也需要转载 2016-07-02 11:16:25 · 309 阅读 · 0 评论 -
[Java并发包学习五]CountDownLatch和CyclicBarrier介绍
概述JDK中提供了一些用于线程之间协同等待的工具类,CountDownLatch和CyclicBarrier就是最典型的两个线程同步辅助类。下面分别详细介绍这两个类,以及他们之间的异同点。CountDownLatch类CountDownLatch顾名思义:倒计数锁存器。没错,他就是一个计数器,并且是倒着计数的。他的应用场景如下:一个任务A,他需要等待其他的一些任转载 2016-07-02 11:14:49 · 254 阅读 · 0 评论 -
[Java并发包学习四]Future和FutureTask
概述Future主要用来表示线程异步执行的结果,他提供了检查异步执行的程序是否已经执行完毕、是否已经被取消,并且获取执行结果的方法。它是一个接口,接口的定义如下:12345678public interface Future { boolean cancel(boolean mayInterruptIfRunning);转载 2016-07-02 11:10:57 · 287 阅读 · 0 评论 -
[Java并发包学习三]ThreadFactory介绍
概述ThreadFactory翻译过来是线程工厂,顾名思义,就是用来创建线程的,它用到了工厂模式的思想。它通常和线程池一起使用,主要用来控制创建新线程时的一些行为,比如设置线程的优先级,名字等等。它是一个接口,接口中只有一个方法:123456789/** * Constructs a new {@code Thread}. Im转载 2016-07-02 10:57:26 · 378 阅读 · 0 评论 -
[Java并发包学习二]Executors介绍
概述Executors类是JDK 1.5开始自带的一个非常强大的主要用于创建各类线程池的工具类。常用方法介绍newFixedThreadPoolnewFixedThreadPool方法有两种函数签名:12public static ExecutorService newFixedThreadPool(int nThreads)转载 2016-07-02 10:53:26 · 301 阅读 · 0 评论 -
[高并发Java 四] 无锁
摘要本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.无锁类的原理详解 2.无锁类的使用在[高并发Java 一] 前言中已经提到了无锁的概念,由于在jdk源码中有大量的无锁应用,所以在这里介绍下无锁。1 无锁类的原理详解1.1 CASCAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表转载 2016-09-08 11:15:49 · 542 阅读 · 0 评论