1.1volatile关键字使用底层原理: volatile是轻量级的 synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。有volatile变量修饰的共享变量进行写操作的时候:1)将当前处理器缓存行的数 ...
分类:
编程语言 时间:
2019-05-06 23:26:16
阅读次数:
177
什么是锁 另外还有文档:https://juejin.im/post/5b16148a518825136137c8db 在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。 而同步的本质是通过锁来实现的 ...
分类:
其他好文 时间:
2019-04-27 21:21:54
阅读次数:
166
1、RDD 全称 弹性分布式数据集 Resilient Distributed Dataset它就是一个 class。 abstract class RDD[T: ClassTag]( @transient private var _sc: SparkContext, @transient priv ...
分类:
其他好文 时间:
2019-04-27 00:27:57
阅读次数:
132
1 //线程取消不是操作线程,而是操作信号量(共享变量,多个线程都能访问到的东西,变量/数据库的数据/硬盘数据) 2 //每个线程在执行的过程中,经常去查看下这个信号量,然后自己结束自己 3 //线程不能别人终止,只能自己干掉自己,延迟是少不了的 4 //CancellationTokenS... ...
分类:
编程语言 时间:
2019-04-21 09:45:36
阅读次数:
181
一、synchronized的基本使用 synchronized是Java中解决并发问题的一种最常用的方法,也就最简单的一种方法。synchronized的作用有以下三个: (1)确保线程互斥的访问同步代码 (2)保证共享变量的修改能及时可见 (3)有效解决重排序问题 从语法上将,synchroni ...
分类:
编程语言 时间:
2019-04-14 09:56:54
阅读次数:
136
volatile是java提供的一种轻量级的同步机制,被transient关键字修饰的变量不能被序列化。本文记录了对这两个比较复杂的java关键字的理解。 ...
分类:
编程语言 时间:
2019-04-12 13:45:26
阅读次数:
163
实现线程间通讯的方式: 1、共享变量实现 1.1 利用基synchronized notify wait来实现 1.2 利用lock和condition实现 1.3 利用volatile 该关键字修饰的变量直接存储在main memory 不像其他线程的变量存储在local thread 1.4 利 ...
分类:
编程语言 时间:
2019-04-11 16:30:28
阅读次数:
143
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.a ...
分类:
其他好文 时间:
2019-04-07 12:37:05
阅读次数:
168
线程锁与分布式锁 1.java的synchronize和Lock都是属于线程锁,只能保证同一个进程内的多线程对共享变量修改访问同步。它们的原理都是设置一个可以让所有线程访问到标记,如synchronize是设置对象头的Mark Word,而Lock类是基于AQS的volatile修饰的state。 ...
分类:
数据库 时间:
2019-03-29 00:37:06
阅读次数:
249
转自:https://docs.pythontab.com/tensorflow/how_tos/variable_scope/ 这个讲的不错,能够更理解tf.get_Variable()了。创建时有name,并且前缀会有当前的scope名。 使用它创建变量时,会首先检测有没有出现过。没有显式sco ...
分类:
其他好文 时间:
2019-03-25 17:41:25
阅读次数:
174