摘要:
jdk自带线程池ThreadPoolExecutor包含了大量的信息,其中包括真正的线程池实现,工作队列,线程池状态,线程池的统计信息(工作线程数,完成任务数)以及为了使线程池适配各种各样场合而产生的各种可调整参... 阅读全文
2013年11月15日
摘要:
目录Condition的概念大体实现流程 I.初始化状态 II.await()*作 III.signal()*作3个主要方法 Condition的数据结构 线程何时阻塞和释放 await()方法 s... 阅读全文
摘要:
非阻塞算法在 Java 中的应用越来越广泛 , ConcurrentLinkedQueue 是 java. concurrent 包中基于非阻塞算法实现的并发容器的典范。通过本文,您将了解非阻塞算法的工作原理及其... 阅读全文
2013年11月13日
摘要:
本文节选自 Effective Java by Joshua Bloch 和 Concurrent Programming in Java by Doug Lea. 1.1 概述 多线程程序设计比单线程程序设... 阅读全文
摘要:
ForkFork就是一个不断分枝的过程,在当前任务的基础上长出n多个子任务。当一个ForkJoinTask任务调用fork()方法时,当前线程会把这个任务放入到queue数组的queueTop位置,然后执行以下两... 阅读全文
摘要:
监视器java中同步是通过监视器模型来实现的,JAVA中的监视器实际是一个代码块,这段代码块同一时刻只允许被一个线程执行。线程要想执行这段代码块的唯一方式是获得监视器。监视器有两种同步方式:互斥与协作。多线程环境... 阅读全文
摘要:
简介提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并需... 阅读全文
摘要:
java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMem... 阅读全文
摘要:
首先介绍一下什么是Compare And Swap(CAS)?简单的说就是比较并交换。CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会... 阅读全文
摘要:
NUMA与SMPSMP(Symmetric Multi-Processor),即对称多处理器结构,指服务器中多个CPU对称工作,每个CPU访问内存地址所需时间相同。其主要特征是共享,包含对CPU,内存,I/O等进... 阅读全文