本月博客排行
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- e_e
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- sichunli_030
- xyuma
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- zhanjia
- lzyfn123
- forestqqqq
- ajinn
- nychen2000
- wjianwei666
- hanbaohong
- daizj
- 喧嚣求静
- mwhgJava
- silverend
- kingwell.leng
- lchb139128
- kristy_yy
- lich0079
- johnsmith9th
- jveqi
- java-007
- sunj
最新文章列表
Java并发编程:Lock&ReentrantLock&Condition
在Java中,除了使用synchronized关键字实现线程同步,还可以使用java.util.concurrent.locks包下的重入锁(ReentrantLock)来实现同步。今天我们就来学习ReentrantLoc ...
java高并发编程:2--volatile可见性同步
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较 ...
并发框架Disruptor几个Demo
经过2个月的疯狂加班后终于迎来了五一节前的几天清闲日子,在这闲得蛋疼的日子里,本屌丝无意中从ifeve上看到“Disruptor”并发框架,它号称"能够在一个线程里每秒处理6百万订单" 当时就被它吸引住了,不管是不是在吹流逼吧,先研究研究在说....
扫盲:
要想了解Disruptor框架必需多花点时间研究下它的工作原理,不然代码是没法撸的!!!
...
Java并发编程(六)--Lock与Synchronized的比较
从代码层角度来说:
Lock是基于在语言层面实现的锁,Lock锁可以被中断,支持定时锁,虽然我们总是在一个finally块中释放锁,但是其实我们可以很随意的释放锁,如果安全的话。Synchronized是基于JVM实现的,我们称之为对象的内置锁,Java中的每一个对象都可以作为锁。对于同步方法,锁是当前实例对象。对于静态同步方法,锁是当前对象的Class对象。对于同步方法块,锁是Synchoni ...
Java并发编程(五)--异步计算
表征异步计算的Future:
Future接口有一个get方法,这个方法会执行到计算结束才返回,它可以被中断取消。从它的实现类来看FutureTask来看,其内部也有一个Sync的同步控制类,任务提交的时候会执行
void innerRun() {
if (!compareAndSetState(0, RUNNING))
ret ...
Java并发编程(三)--并发数据结构
ConcurrentHashMap的设计实现
为什么还需要ConcurrentHashMap,不是有了Hashtable吗。如果所有的事情都用Synchronized去解决,那么这个世界会变得很糟糕。
ConcurrentHashMap最绝妙的地方是采用了锁分段技术,一种分而治之的策略,一个HashMap被分为了几个Segment,在每个Segment里面实行同步控制。
对Concurre ...
Java并发编程(二)--j.u.c锁机制
AQS
juc很多操作都是基于AQS(AbstractQueuedSynchronizer)
不同于自旋锁,juc使用的是volatile机制的状态变量;
内部也有一个阻塞线程的等待队列
每个线程都被封装在一个Node结点中
static final class Node {
// 当前线程被取消
static final int CANCELLED ...
Java并发程序设计-注解
1. 类Annotation
3个Annotation描述类的可预期的线程安全保证:
@ThreadSafe:类是线程安全的;
@Immutable:类是不可变的(属性为final),不可变对象是线程安全的;
@NotThreadSafe:类不是线程安全的,如果类未加任何注解,则不能确定是否线程安全,认为是非线程安全的。
2. 域Annotation和方法Annotation
描述哪个状态变量被哪 ...
Tomcat学习之Context
context
一个context代表一个web应用,它运行在特定的虚拟主机中,每个web应用要么是一个war文件,要么是一个符合规范的目录。一般HTTP请求路径中带有requestURI,我们可以从requestURI中获取上下文路径,根据上下文路径可以选择适合的web应用程序来处理这个请求。你还可以定义多个context,但每个context的名称必须唯一。
context一般会出现在以 ...
Tomcat学习之Context
context
一个context代表一个web应用,它运行在特定的虚拟主机中,每个web应用要么是一个war文件,要么是一个符合规范的目录。一般HTTP请求路径中带有requestURI,我们可以从requestURI中获取上下文路径,根据上下文路径可以选择适合的web应用程序来处理这个请求。你还可以定义多个context,但每个context的名称必须唯一。
context一般会出现在以 ...
最近重新读java concurrency in practice 随笔
觉得自己在并发编程还缺很多, 最近一段时间都在积极的学习中。 呵呵, 学到老, 活到老。
Java 的并发编程涉及的方面还是非常多的:
1, 基础方面的: 对象的共享。 依照从安全性从高到低的方式 可以有
最安全的对象共享就是不享, 一个对象仅仅局限在一个线程中。 如果一个对象只能被某个线程的局部变量 也就是在 栈(stack) 访问。
ThreadLocal ...