1.voliate简介 在上一篇文章中我们深入理解了java关键字synchronized,我们知道在java中还有一大神器就是关键volatile,可以说是和synchronized各领风骚,其中奥妙,我们来共同探讨下. 通过上一篇的文章我们了解到synchronized是阻塞同步的,在线程竞争激 ...
分类:
其他好文 时间:
2018-07-06 01:23:59
阅读次数:
3730
操作系统作为底层硬件和上层应用的中间层,使命之一就是最大限度的发挥硬件能力,解决高并发问题。在Linux上,所有的IO都被抽象成了文件,知名的高并发神器nginx、netty、redis都是基于它的epoll搞的。 高速CPU和低俗IO之间的矛盾是最大限度发挥硬件能力的核心矛盾;CPU和IO设备的协 ...
分类:
其他好文 时间:
2018-07-03 11:44:38
阅读次数:
173
今天我们学习的是如何在线程自己的范围内达到变量数据的共享,而各个线程之间又是互相独立开来,各自维护的,即我们说的ThreadLocal的作用。 一、概念 可以将每个线程用到的数据与对应的线程号存放到一个map集合中,使用数据时从这个集合中根据线程号获取对应线程的数据,就可以实现线程范围内共享相同的变 ...
分类:
编程语言 时间:
2018-07-02 00:11:51
阅读次数:
207
Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字。 volatile,从字面上说是易变的、不稳定的,事实上,也确实如此,这个关键字的作用就是告诉编译器,只要是被此关键字修饰的变量都是易变的、不稳定的。那为什么是易变的呢?因为 ...
分类:
编程语言 时间:
2018-07-01 23:02:55
阅读次数:
204
设计模式:享元(FlyWeight)模式,定义,代码,节省内存。 ...
分类:
其他好文 时间:
2018-07-01 18:20:52
阅读次数:
117
什么是java的内存模型? 共享变量:一个变量可以被多个线程使用,那么这个变量就是这几个线程的共享变量。 Java Memory Model (JAVA 内存模型)描述线程之间如何通过内存(memory)来进行交互,描述了java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内 ...
分类:
编程语言 时间:
2018-07-01 15:18:24
阅读次数:
196
tensorflow里面共享变量、name_scope, variable_scope等如何理解 tensorflow里面共享变量、name_scope, variable_scope等如何理解 name_scope, variable_scope目的:1 减少训练参数的个数。 2 区别同名变量 为 ...
分类:
其他好文 时间:
2018-06-26 19:31:29
阅读次数:
272
本文主要介绍 java中在并发环境下,有哪些方案实现线程安全,注意 线程问题主要由内存模型引起的(在基础篇中) 目录 valotile可见性 CAS无锁编程 内置锁(同步关键字synchronied) 显示锁(lock) valotile可见性 1 volatile关键字的两层语义(一旦一个共享变量 ...
分类:
编程语言 时间:
2018-06-22 13:38:44
阅读次数:
199
竞争条件:两个或多个进程读取某些共享数据,最后的结果取决于进程运行的精确时序,成为竞争条件。 互斥:当一个进程在使用一个共享变量或文件时,其他进程不能做同样的操作。 临界区:对共享内存进行访问的程序片段成为临界区。 实现互斥,避免竞争条件的方法: 1 屏蔽中断,cpu将不会切换到其他进程。但不适合多 ...
分类:
其他好文 时间:
2018-06-13 21:41:34
阅读次数:
177
多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作的顺序是不可预期的,多线程访问同一个共享变量特别容易出现并发问题,特别是多个线程需要对一个共享变量进行写入时候,为了保证线程安全, 一般需要使用者在访问共享变量的时候进行适当的同步,如下图所示: 可以看到同步的措 ...
分类:
编程语言 时间:
2018-06-03 23:33:24
阅读次数:
272