常用API method | 注释 | | 方法是我们创建线程时必须要实现的方法,但是实际上该方法只是一个普通方法,直接调用并没有开启线程的作用。 | 方法作用为使该线程开始执行;Java虚拟机调用该线程的 run 方法。 但是该方法只能调用一次,如果线程已经启动将会抛出 异常。 | 方法让出CPU ...
分类:
编程语言 时间:
2018-11-18 21:08:52
阅读次数:
194
之前讲了《AQS源码阅读》和《ReentrantLock源码阅读》,本次将延续阅读下ReentrantReadWriteLock,建议没看过之前两篇文章的,先大概了解下,有些内容会基于之前的基础上阅读。这个并不是ReentrantLock简单的升级,而是落地场景的优化,我们来详细了解下吧。背景JUC包里面已经有一个ReentrantLock了,为何还需要一个ReentrantReadWriteLo
分类:
编程语言 时间:
2018-11-16 20:41:44
阅读次数:
192
概述 ReentrantReadWriteLock是Lock的另一种实现方式,ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。相对于排他锁,提高了并发性。在实际应 ...
分类:
编程语言 时间:
2018-11-15 13:34:58
阅读次数:
244
AQS,全称`AbstractQueuedSynchronizer`,是Concurrent包锁的核心,没有AQS就没有Java的Concurrent包。它到底是个什么,我们来看看
分类:
编程语言 时间:
2018-11-14 19:07:38
阅读次数:
129
为了性能与使用的场景,Java实现锁的方式有非常多。而关于锁主要的实现包含**synchronized关键字**、**AQS框架下的锁**,其中的实现都离不开以下的策略。
分类:
编程语言 时间:
2018-11-14 19:03:08
阅读次数:
125
首先我们看看简单定时器实现方法:用ScheduledExecutorService接口 Java代码 public interface ScheduledExecutorService extends ExecutorService { 创建并执行在给定延迟后启用的一次性操作。 ScheduledF ...
分类:
其他好文 时间:
2018-11-14 16:38:43
阅读次数:
124
1.多线程的概念 首先明确两个概念:进程与线程。 进程:一个进程对应了一个应用程序。进程是某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。比如我们打开QQ,QQ在系统中就是一个进程,我们打开任务管理器,每一个大项就是一个进程。 线程:线程是进程的具体执行场景,一个进程可以包含多 ...
分类:
编程语言 时间:
2018-11-13 21:46:29
阅读次数:
150
Hazelcast是Hazelcast公司开源的一款分布式内存数据库产品,提供弹性可扩展、高性能的分布式内存计算。并通过提供诸如Map,Queue,ExecutorService,Lock和JCache等Java的许多开发人员友好的分布式实现。 ...
分类:
编程语言 时间:
2018-11-13 12:17:08
阅读次数:
180
昨天栈长介绍了《 "Java多线程可以分组,还能这样玩!" 》线程分组的妙用。今天,栈长会详细介绍 Java 中的多线程 start() 和 run() 两个方法,Java 老司机请跳过,新手或者对这两个不是很理解的可以继续往下看。 首先要知道实现多线程最基本的两种方式: 1、继承 类; 2、实现 ...
分类:
编程语言 时间:
2018-11-13 12:15:00
阅读次数:
164
Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个 ...
分类:
编程语言 时间:
2018-11-12 17:49:35
阅读次数:
185