例:长度为N的数组,把奇数放到数组的前面,偶数放到数组的后面 空间复杂度为O(1)核心思想是:定义两个指针,一个指针A从前往后扫描,一个指针B从后往前扫描。指针A扫描到偶数暂停,指针B扫描到奇数暂停,然后交换着两个数,交换之后继续如上述扫描和交换,直到指针A和指针B重合停止。C语言中&表示按位与,0...
分类:
编程语言 时间:
2015-08-01 07:39:16
阅读次数:
108
可见性当把变量生命为volatile类型,编译和运行时都会注意到这个变量是共享的,因此不会再讲这个变量上的操作和其他内存操作重排序.volatile变量不会被缓存在寄存器或者是其他处理器不可见的地方,因此在读取volatile变量的时候,总会返回最新写入的值.volatile是比sychronize...
分类:
其他好文 时间:
2015-07-20 19:08:20
阅读次数:
109
前面已经介绍硬件平台Cache Coherence问题和解决办法,下面来看看Java虚拟机平台的相关知识。硬件平台处理器,高速缓存,主存之间的交互关系如下:Java内存模型(JMM) Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model, JMM)来屏蔽掉底...
分类:
移动开发 时间:
2015-07-05 22:24:38
阅读次数:
253
缓存(Cache) CPU的读/写(以及取指令)单元正常情况下甚至都不能直接访问内存——这是物理结构决定的;CPU都没有管脚直接连到内存。相反,CPU和一级缓存(L1 Cache)通讯,而一级缓存才能和内存通讯。大约二十年前,一级缓存可以直接和内存传输数据。如今,更多级别的缓存加入到设计中,一级.....
分类:
移动开发 时间:
2015-07-04 19:46:29
阅读次数:
356
[-]part1 从AtomicInteger开始part 2 数组引用的原子操作part3 指令重排序与happens-before法则part 4 CAS操作part1 从AtomicInteger开始从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包...
分类:
编程语言 时间:
2015-06-29 19:35:30
阅读次数:
258
JMM 1、内存模型的抽象。本地内存是JMM的一个抽象概念,并不是真实存在,它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化。 2、内存可见性问题? ? 3、重排序编译器优化重排序 编译器再不改变单线程程序语义的前提下,可重新安排语句执行顺序。指令级并行重排序 现代处理器采用了指...
分类:
编程语言 时间:
2015-06-29 06:20:10
阅读次数:
247
队列方法相对于栈数据结构的后进先出【LIFO】访问规则,队列数据结构的访问规则是先进先出【FIFO】这里提到一个方法 shift(); 它能够移除数组中的第一个项,并返回该项,同时将数组长度减1;//有点像pop()实例:var colors = ['red','green'];var item =...
分类:
编程语言 时间:
2015-06-28 00:05:39
阅读次数:
207
第五章内容较多,接体系结构复习15.4 基于硬件推测的指令级并行动态分支预测是在程序运行时,根据转移的历史信息等动态确定预测分支方向...
分类:
其他好文 时间:
2015-06-22 22:20:24
阅读次数:
859
建表啥的只点点鼠标,太外行了,不如来看看我的纯手写,让表从无到有一系列;还有存储过程临时表,不间断的重排序;一:建数据库 1create Database Show2 on 3 primary 4 ( 5 name= Show_data , 6 filename= 'C:\Prog...
分类:
数据库 时间:
2015-06-10 11:46:37
阅读次数:
155