内置锁sychronized跟volatile;1.volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。2.volatile仅能使用在变量级别;synchronize...
分类:
编程语言 时间:
2015-07-13 15:27:06
阅读次数:
138
刚刚看了一下synchronized和volatile的区别,这里做一下笔记。 多线程中内存是如何分配的? 分为主内存和线程内存,当线程与其他线程共享一个变量时,便会把主内存的变量复制到线程内存中去。当发生对变量的修改时...
分类:
编程语言 时间:
2015-07-11 10:42:23
阅读次数:
133
完成一个简单的时间片轮转多道程序内核代码重要汇编代码分析 asm volatile(
"movl %1,%%esp\n\t"
"pushl %1\n\t"
"pushl %0\n\t"
"ret\n\t"
"popl %%ebp\n\t"
:
: "c" (task[pid]...
分类:
其他好文 时间:
2015-07-10 11:24:50
阅读次数:
131
Register
用register声明的变量称着寄存器变量,在可能的情况下会直接存放在机器的寄存器 中;但对32位编译器不起作用,当global optimizations(全局优化)开的时候,它会做出
选择是否放在自己的寄存器中;不过其它与register关键字有关的其它符号都对32位编译 器有效。
Const
被const修饰的东西都受到强制保护,可以预防意外的变...
分类:
编程语言 时间:
2015-07-09 16:16:03
阅读次数:
177
http://sakyone.iteye.com/blog/668091http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html
分类:
其他好文 时间:
2015-07-09 11:11:34
阅读次数:
86
http://www.cnblogs.com/dolphin0520/p/3920373.html一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在...
分类:
编程语言 时间:
2015-07-07 16:29:26
阅读次数:
192
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/原子操作(atomic): 通过在汇编操作码前缀加个lock(0xf0)来给内存总线上锁(其他CPU无法访问这个内存单元),直到这条指令完成。atomic_t类型为volatile int。自旋锁(spinl...
分类:
其他好文 时间:
2015-07-06 14:07:09
阅读次数:
146
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是....
分类:
编程语言 时间:
2015-07-02 20:52:05
阅读次数:
123
找了一个停止线程运行的方法,代码如下:public class stopThread extends Thread { private volatile boolean stop = false; @Override public void run(){ S...
分类:
编程语言 时间:
2015-07-02 14:03:41
阅读次数:
141
volatile 可以看做是一种轻量级的synchronized实现,volatile实现的仅仅是synchronized的部分功能,但是开销较synchronized小。特定的情形下,使用volatile会更为合适。 synchronized提供了两种主要特性:互斥 和可见性。互斥即同一...
分类:
其他好文 时间:
2015-07-01 23:33:32
阅读次数:
186