摘要:
自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自旋锁适用于锁保护的临界区很小的情况,临界区很小的话,锁占用的时间就很短。简单的实现import java.util.concurrent.atomi... 阅读全文
随笔分类 - java 并发
SpinLock 实现
2015-10-26 11:50 by Loull, 445 阅读, 收藏, 编辑
摘要:
/* Example: SpinLock Description: SpinLock is the lock implementation using AtomicInteger as a primitive synchronizer. The contracts is based on the... 阅读全文
ForkJoin框架
2014-08-12 12:57 by Loull, 2443 阅读, 收藏, 编辑
摘要:
1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行... 阅读全文
【转】线程、Thread类和线程终止
2014-07-04 19:57 by Loull, 2291 阅读, 收藏, 编辑
摘要:
一、线程Thread启动0. Thread类实现了java.lang.Runnable接口,即实现了run方法。虽然在Sun JDK中,start()调用了start0()方法,start0()方法又是native的,但实际上新的线程就是调用了Thread的run()方法,当然这native的实现中... 阅读全文
java.util.concurrent包
2014-07-04 19:34 by Loull, 498 阅读, 收藏, 编辑
摘要:
在JavaSE5中,JUC(java.util.concurrent)包出现了在java.util.concurrent包及其子包中,有了很多好玩的新东西:1、执行器的概念和线程池的实现。Executor、ExecutorService框架 从Executor接口开始,到ExecutorServi... 阅读全文
Java CAS 和ABA问题
2014-06-03 23:42 by Loull, 54158 阅读, 收藏, 编辑
摘要:
独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。一、CAS 操作乐观锁用到的机制就是CAS,Compare and Swap。CAS有3个操作数... 阅读全文
ObjectMonitor,ObjectWaiter 实现wait(),notify()
2014-04-25 15:14 by Loull, 3625 阅读, 收藏, 编辑
摘要:
0、java对象锁监视器在JVM的规范中,有这么一些话:“在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的”“为了实现监视器的排他性监视能力,JVM为每一个对象和类都关联一个锁”“锁住了一个对象,就是获得对象相关联的监视器”监视器好比一做建筑,它有一个很特别的房间,房间里有一些数据,而且在同... 阅读全文
Java线程同步和线程通信
2014-04-24 23:58 by Loull, 1547 阅读, 收藏, 编辑
摘要:
一、线程同步 当多个线程访问同一个数据时,非常容易出现线程安全问题。这时候就需要用线程同步。 不可变类总是线程安全的,因为它的对象状态是不可改变的,但可变类对象需要额外的方法来保证线程安全。1、同步监视器 释放同步监视器的锁定 任何线程进入同步代码块、同步方法之前,... 阅读全文
Java Thread线程控制
2014-04-24 23:40 by Loull, 1236 阅读, 收藏, 编辑
摘要:
一、线程和进程 进程是处于运行中的程序,具有一定的独立能力,进程是系统进行资源分配和调度的一个独立单位。进程特征: A、独立性:进程是系统中独立存在的实体,可以拥有自己独立的资源,每个进程都拥有自己的私有地址地址。在没有经过进程本身允许的情况下,一个用户进程不可以访问其他进程地址空间。 ... 阅读全文