- 博客(53)
- 资源 (10)
- 收藏
- 关注
转载 Java的LockSupport.park()实现分析
转自:http://blog.csdn.net/hengyunabc/article/details/28126139LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,只有两个函数:[java] view plain
2017-05-15 20:30:07 254
转载 select poll epoll讲解
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是服务
2017-05-11 19:45:13 295
转载 Condition 很好的例子
这个例子是将一个模拟的内存文件由 producer 读到buffer中, 然后由consumer从buffer中读取的例子,通过Condition来实现协调。buffer:文件的缓存import java.util.LinkedList;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Re
2017-05-09 15:19:16 560
原创 AbstractExecutorService源码理解
这个类提供 ExecutorService 执行方法的默认实现。此类使用 newTaskFor 返回的 RunnableFuture 实现 submit、invokeAny 和 invokeAll 方法,默认情况下,RunnableFuture 是此包中提供的 FutureTask 类。例如,submit(Runnable) 的实现创建了一个关联 RunnableFuture 类,该类将被执行并返回
2017-05-03 19:44:08 450
转载 Java内存访问重排序的研究
在高并发模型中,无是面对物理机SMP系统模型,还是面对像JVM的虚拟机多线程并发内存模型,指令重排(编译器、运行时)和内存屏障都是非常重要的概念,因此,搞清楚这些概念和原理很重要。否则,你很难搞清楚哪些操作是在并发先绝对安全的?哪些是相对安全的?哪些并发同步手段性能最低?valotile的二层语义分别是什么?等等。 本来打算自己写一篇有关JVM内存模型的博文,后来整理资料的时候偶
2017-05-01 15:47:03 568
原创 Treiber stack
import java.util.concurrent.atomic.AtomicReference;/** * 使用Treiber算法 Treiber算法主要用于实现Stack,基于Treiber算法实现的无阻塞的Stack * * @author feng * * @param */public class CurrentStack {A
2017-05-01 14:20:29 825
原创 FutureTask源码深入分析
Futuretask继承自RunnableFuture接口,这个接口只有一个方法void java.util.concurrent.RunnableFuture.run()继承Runnable接口与Future接口, run方法执行成功会使得Future也执行完成,并可以访问执行结果 通过Future的get方法返回的执行结果类型。在未被取消的情况下,给Future设置计算结果。接下来讲解Fut
2017-05-01 14:19:10 702
原创 Callable、Runnable、Future、RunnableFuture和FutureTask 深入理解
Callable、Runnable、Future和FutureTask 做为java 线程池运行的重要载体,有必要深入理解。 Callable 和 Runnable 都是执行的任务的接口,区别在于Callable有返回值,而Runnable无返回值。 Future 表示异步任务返回结果的接口 RunnableFuture 继承了Runnable, Future,表示可以带有返回值的run接口
2017-05-01 13:44:39 1927
原创 Future 深入理解
Future 表示异步计算的结果,提供了一些方法来检查是否计算完成,等待计算完成和取回计算结果。 当运算完成后只能通过 get 方法来获取结果。 必要时会阻塞当前线程直到计算完成。 通过cancel方法可以取消任务的执行。 其它方法用来决定任务是否正常执行完成还是被取消了,任务执行完成的任务不能被取消。 如果你想要使用Future的取消任务执行的功能而不不需要取得计算结果,那么你可以声明范
2017-04-30 09:05:22 963
原创 ExecutorService深入理解
ExecutorService是Executor直接的扩展接口,也是最常用的线程池接口,我们通常见到的线程池定时任务线程池都是它的实现类。原文: An Executor that provides methods to manage termination and methods that can produce a Future for tracking progress of one
2017-04-29 14:27:54 22390
原创 Executor 概述
Executor 是jdk并发编程顶层接口,定义了线程池的标准。 它包含了一个方法execute,参数为一个Runnable接口引用。 源码:public interface Executor { void execute(Runnable command);}原文: An object that executes submitted Runnable tasks. This
2017-04-28 20:39:57 547
翻译 内存一致性模型(Memory Consistency Models)
内存一致性模型(Memory Consistency Models)原文地址:http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/consistency.html内存一致性模型 (Memory Consistency Models)本文对最近几年出现的几种比较重要的内存一致性模型进行了描述。最基本的想法是去阐述清楚:试图去实现我们头脑中对“内存一致性
2017-04-28 17:51:37 5614
转载 ThreadPoolExecutor原理
前言为什么要使用线程池?我们现在考虑最简单的服务器工作模型:服务器每当接收到一个客户端请求时就创建一个线程为其服务。这种模式理论上可以工作的很好,但实际上会存在一些缺陷,服务器应用程序中经常出现的情况是单个客户端请求处理的任务很简单但客户端的数目却是巨大的,因此服务器在创建和销毁线程所花费的时间和系统资源可能比处理客户端请求处理的任务花费的时间和资源更多。假设一个服务器完成一项
2017-04-23 08:40:14 760
保证可以使用的的SSO例子
2014-02-21
java反编译eclipse插件
2014-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人