并发编程
Canliture
hello, 程序分析!
展开
-
synchronized锁住什么?锁的范围?
synchronized关键字简单地讲,可以使用这一简单的关键字来保证线程安全。但是我们首先得知道synchronized到底锁住的是什么?锁住的范围又是什么?这里测试实验仅用两个类:Test.java类,里面只有一个函数,在线程中调用的函数。Main.java类,整个实验的测试入口Tips:这里缩略地使用syn锁来表示synchronized锁版本1:syn锁住函数这里使用最简单...原创 2018-11-28 22:49:15 · 785 阅读 · 0 评论 -
线程安全(Thread Safety)
注意:更详细的内容参考<<Java并发编程实践>>这里大量的代码都来自此书,或者在此书代码的基础上进行改动/扩展本节关键字/词: 线程安全,竞争条件,Atomic(原子性),synchronized(同步锁),Reentrancy(重进入)这里主要对重要代码分析。代码例子引入线程安全问题public class UnsafeSeque原创 2018-11-28 02:33:19 · 1182 阅读 · 0 评论 -
并发编程实战(1). 环境搭建
1. 定义辅助注释我们定义四个注释:ThreadSafe, NotThreadSafe , Recommend , NotRecommend@Target(ElementType.TYPE) // 注解作用的目标:给一个类加上注解@Retention(RetentionPolicy.SOURCE) // 注解存在的范围:只存在于源代码中public @interface Thread...原创 2019-05-16 17:07:46 · 210 阅读 · 0 评论 -
并发编程实战(2). 线程安全性
线程安全性什么是线程安全性? 在《Java Concurrency In Practice》中,有这么一段对于线程安全性的描述,被广泛引用:当多个线程访问某个类时,不管运行时环境采取何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的---- P13. Java Concurrency In P...原创 2019-05-16 17:08:44 · 169 阅读 · 0 评论 -
并发编程实战(3). 安全发布对象 之 单例模式的7种实现
摘自Java Concurrency In Practice安全发布对象的常用模式1.在静态初始化函数中初始化一个对象引用2.将对象的引用保存到volatile类型的域或者AtomicReference对象中3.将对象的引用保存到某个正确构造对象的final域中4.将对象的引用保存到一个由锁保护的域中这里介绍一下懒汉模式,它代码实现的演进包含了除了3之外的所有模式。文章目录懒...原创 2019-05-16 18:36:13 · 235 阅读 · 0 评论 -
并发编程实战(4). 异步任务 之 Callable,Future,FutureTask
Java 中异步任务的实现 之 Callable,Future,FutureTask这里,我们主要用到的类和接口为:Callable,Future,FutureTaskRunable只需关心运行的动作行为,而Callable同时关心运行的结果。package java.util.concurrent;@FunctionalInterfacepublic interface Callabl...原创 2019-05-17 11:53:59 · 260 阅读 · 0 评论