一、Java中的volatile在Java程序中,如果一个变量被volatile关键字修饰,那么这个变量就具有了有序性和可见性。有序性:java语言中提供了synchronized和volatile两个关键字保证线程之间操作的有序性,也就是他可以使CPU指令有序。可见性:当一个线程操作一个被volatile修饰的变..
分类:
其他好文 时间:
2017-09-11 18:22:41
阅读次数:
96
前言 对于ThreadLocal、Volatile、synchronized、Atomic这四个关键字,我想一提及到大家肯定都想到的是解决在多线程并发环境下资源的共享问题,但是要细说每一个的特点、区别、应用场景、内部实现等,却可能模糊不清,说不出个所以然来,所以,本文就对这几个关键字做一些作用、特点 ...
分类:
其他好文 时间:
2017-09-10 17:37:00
阅读次数:
134
Java线程的同步(七中方法):同步方法同步代码块wait和notify方法使用特殊域变量(volatile)使用重入锁使用ThreadLocal使用阻塞队列BlockingQueue使用原子变量实现线程同步AtomicInteger
分类:
编程语言 时间:
2017-09-09 23:18:44
阅读次数:
193
一 整体结构 前面tomcat实现原理(一)里面描述了整个tomcat接受一个http请求的简单处理,这里面我们讲下整个tomcat的架构,以便对整体结构有宏观的了解。tomat里面由很多个容器结合在一起,主要有server,service,context,host,engine,wrapper,c ...
分类:
其他好文 时间:
2017-09-09 22:36:02
阅读次数:
273
(1)保证可见性:多线程主要围绕可见性和原子性两个特性而展开,使用volatile关键字修饰的变量,保证了其在多线程之间的可见性,即每次读取到volatile变量,一定是最新的数据。 当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取 ...
分类:
其他好文 时间:
2017-09-08 00:09:50
阅读次数:
219
今天看着一个多线程并发用到的关键字:volatile,看了不少资料发现这个是一个共享的直接写入内存使用的关键字修饰变量,用来修饰类变量或者类静态变量,所以有了一个关于单利模式的想法,我们都知道的单例模式的一个写法是: 当然单例模式还有其他的写法,我要说的是将关键字volatile加在变量instan ...
分类:
其他好文 时间:
2017-09-07 19:33:45
阅读次数:
134
c语言数据类型(C99标准):字符(char),整型(int),长整型(long int),单精度浮点(float),双精度浮点(double),布尔类型(_Bool),数组,结构体(struct),共用体(union),枚举类型(enum),指针类型(*),函数类型,双长整型(long long) ...
分类:
编程语言 时间:
2017-09-07 10:02:16
阅读次数:
172
transient是在对象序列化的时候,不参与序列化的字段。 如LinkedList实现了Serializable,其中有变量transient int size = 0; 在Serializable序列化的时候size时不会参与序列化的,如用ObjectOutputStream读取LinkedLi ...
分类:
其他好文 时间:
2017-09-05 17:47:48
阅读次数:
172
这个古老的话题, 首先让我们看stackoverflow中一个经典的问题: Volatile vs. Interlocked vs. lock 然后连接看答案: https://stackoverflow.com/questions/154551/volatile-vs-interlocked-vs ...
分类:
编程语言 时间:
2017-09-04 17:45:52
阅读次数:
235
1、不变性 某个对象在被创建后其状态就不能被修改,那么这个对象就称为不可变对象,不可变对象一定是线程安全的。不可变对象很简单。他们只有一种状态,并且该状态由构造函数来控制。 当满足以下条件时,对象才是不可变的:(1)、对象创建以后其状态就不能改变;(2)、对象的所有域都是final类型;(3)、对象 ...
分类:
编程语言 时间:
2017-09-03 23:36:02
阅读次数:
205