随笔分类 -  多线程

上一页 1 2 3 下一页
并发编程之五--ThreadLocal
摘要:一、ThreadLocal是什么 二、ThreadLocal的场景 三、ThreadLocal原理 四、ThreadLocal需要避开的坑 五、有什么方式能提高 ThreadLocal 的性能吗? 六、Thread同步机制的比较 一、ThreadLocal是什么 早在JDK 1.2的版本中就提供ja 阅读全文
posted @ 2015-12-29 14:47 duanxz 阅读(401) 评论(0) 推荐(0)
Java并发编程之三:volatile关键字解析
摘要:目录: 《Java并发编程之三:volatile关键字解析》 《volatile之一--volatile不能保证原子性》 《Synchronized之一:基本使用》 基础: 《java内存模型JMM》 《指令重排、内存屏障概念解析》 volatile这个关键字可能很多朋友都听说过,或许也都用过。在J 阅读全文
posted @ 2015-12-22 15:10 duanxz 阅读(1537) 评论(0) 推荐(1)
Thread之四:java线程返回结果的方法
摘要:《Thread之四:java线程返回结果的方法》 《Runnable、Callable、Future和FutureTask之一:获取线程的返回值》 《CompletionService之一:获得线程(线程池的)处理结果》 本文目录: 第一种方法:通过线程的实例变量传递方式获取结果第二种方法:使用Ca 阅读全文
posted @ 2015-12-17 11:05 duanxz 阅读(5675) 评论(0) 推荐(0)
Fork/Join框架介绍
摘要:转http://www.infoq.com/cn/articles/fork-join-introduction/ 1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框 阅读全文
posted @ 2015-12-17 10:18 duanxz 阅读(439) 评论(0) 推荐(0)
Spring并发访问的线程安全性问题
摘要:当然大多数情况下,我们根本不需要考虑线程安全的问题,比如dao,service等,除非在bean中声明了实例变量。因此,我们在使用spring mvc 的contrller时,应避免在controller中定义实例变量。 如: 在这里有声明一个变量company,这里就存在并发线程安全的问题。如果控 阅读全文
posted @ 2015-12-16 18:02 duanxz 阅读(3795) 评论(0) 推荐(0)
java程序怎么在一个电脑上只启动一次,只开一个进程
摘要:目录 《linux文件锁flock》 《NIO文件锁FileLock》 《java程序怎么在一个电脑上只启动一次,只开一个进程》 方案1: 单进程程序可以用端口绑定。程序启动的时候可以尝试看该端口是否已经被占用,如果占用则程序已经启动。 方案2:你可以在java程序中创建一个隐藏文件,程序退出的时候 阅读全文
posted @ 2015-12-04 15:46 duanxz 阅读(2301) 评论(0) 推荐(0)
Java应用中使用ShutdownHook友好地清理现场、退出JVM的2种方法
摘要:这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。 一、编写个测试类 publi 阅读全文
posted @ 2015-12-02 23:45 duanxz 阅读(1183) 评论(0) 推荐(0)
同步机制之--java之CountDownLatch闭锁
摘要:CountDownLatch闭锁 1、类介绍 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数初始化 CountDownLatch。CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countD 阅读全文
posted @ 2015-11-26 19:27 duanxz 阅读(856) 评论(0) 推荐(0)
java对象在内存中的结构(HotSpot虚拟机)
摘要:一、对象的内存布局 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 32位: 64位: 从上面的这张图里面可以看出,对象在内存中的结构主要包含以下几个部分: 对象头: Mark Word(标 阅读全文
posted @ 2015-11-15 18:45 duanxz 阅读(19984) 评论(7) 推荐(7)
Synchronized之一:基本使用
摘要:目录: 《Java并发编程之三:volatile关键字解析 转载》 《volatile之一--volatile不能保证原子性》 《Synchronized之一:基本使用》 Synchronized作用 1、Synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法或者代码块。 2、同 阅读全文
posted @ 2015-08-21 09:32 duanxz 阅读(2108) 评论(1) 推荐(0)
Synchronized之二:synchronized的实现原理
摘要:Java提供了synchronized关键字来支持内在锁。Synchronized关键字可以放在方法的前面、对象的前面、类的前面。 当线程调用同步方法时,它自动获得这个方法所在对象的内在锁,并且方法返回时释放锁,如果发生未捕获的异常,也会释放锁。当调用静态同步方法时,因为静态方法和类相关联,线程获得 阅读全文
posted @ 2015-08-20 17:32 duanxz 阅读(1342) 评论(0) 推荐(0)
synchronized总结:怎么保证可见性、有序性、原子性
摘要:通过前面的篇章我们知道 synchronized 底层实际上通过JVM来实现的,同一时间只能有一个线程去执行synchronized 中的代码块。 一、原子性 原子性:既然同一时间只有一个线程去运行里面的代码,那么这个操作就是不能被其它线程打断的,所以这里天然就具有原子性了。 二、可见性 我们继续来 阅读全文
posted @ 2015-05-11 16:05 duanxz 阅读(1462) 评论(1) 推荐(3)
Synchronized之四:Synchronized的可重入性
摘要:本文里面讲的是广义上的可重入锁,而不是单指JAVA下的ReentrantLock。 可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下ReentrantLock 和synchronized 都是可重入锁。 一、synchroni 阅读全文
posted @ 2015-05-09 09:13 duanxz 阅读(1956) 评论(0) 推荐(0)
同步机制之--java CyclicBarrier 循环栅栏
摘要:CyclicBarrier介绍一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称 阅读全文
posted @ 2015-05-09 08:34 duanxz 阅读(1537) 评论(0) 推荐(0)
Java 信号量 Semaphore 入门介绍
摘要:一、简介二、概念 2.1、Semaphore信号量模型 2.2、Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得 2.3、公平/非公平模式 2.4、主要的方法三、Semaphore应用场景 示例-1:Semaphore可以做到一个deadlock recover 阅读全文
posted @ 2015-05-09 08:30 duanxz 阅读(2003) 评论(0) 推荐(0)
Runnable、Callable、Future和FutureTask之一:获取线程的返回值
摘要:《Thread之四:java线程返回结果的方法》 《Runnable、Callable、Future和FutureTask之一:获取线程的返回值》 《CompletionService之一:获得线程(线程池的)处理结果》 Java从发布的第一个版本开始就可以很方便地编写多线程的应用程序,并在设计中引 阅读全文
posted @ 2015-05-08 23:20 duanxz 阅读(1898) 评论(0) 推荐(0)
Runnable、Callable、Future和FutureTask之二:源码解析
摘要:一、Callable与Future类图 1、类图 许多任务实际上都是存在延迟的计算,对于这些任务,Callable是一种更好的抽象:它会返回一个值,并可能抛出一个异常。Callable接口: V call() throws Exception; 可以看到,这是一个泛型接口,call()函数返回的类型 阅读全文
posted @ 2015-05-08 23:11 duanxz 阅读(566) 评论(0) 推荐(0)
ThreadLocal实现方式&使用介绍---无锁化线程封闭
摘要:虽然现在可以说很多程序员会用ThreadLocal,但是我相信大多数程序员还不知道ThreadLocal,而使用ThreadLocal的程序员大多只是知道其然而不知其所以然,因此,使用ThreadLocal的程序员很多时候会被它导入到陷进中去,其实Java很多高级机制系列的很多东西都是一把双刃剑,也 阅读全文
posted @ 2015-03-30 21:53 duanxz 阅读(685) 评论(0) 推荐(0)
java.util.concurrent.Exchanger应用范例与原理浅析--转载
摘要:一、简介 Exchanger是自jdk1.5起开始提供的工具套件,一般用于两个工作线程之间交换数据。在本文中我将采取由浅入深的方式来介绍分析这个工具类。首先我们来看看官方的api文档中的叙述: A synchronization point at which threads can pair and 阅读全文
posted @ 2015-03-28 16:53 duanxz 阅读(784) 评论(0) 推荐(0)
Java线程之Phaser
摘要:Phaser是一个灵活的线程同步工具,他包含了CyclicBarrier和CountDownLatch的相关功能 首先,来看一下如何用Phaser替代CountDownLatch。对于CountDownLatch而言,有2个重要的方法,一个是await()方法,可以使线程进入等待状态,在Phaser 阅读全文
posted @ 2015-03-27 21:53 duanxz 阅读(654) 评论(0) 推荐(0)

上一页 1 2 3 下一页