一.fork的嵌入式汇编执行#include #include int main(){ pid_t pid; asm volatile( "mov $0,%%ebx\n\t" "mov $0x2,%eax\n\t" "int 0x80\n\t" ...
分类:
系统相关 时间:
2015-04-26 13:34:05
阅读次数:
173
Dekker algorithm是一种著名的并发编程的算法,Dekker算法的核心部分是一组对称的代码来访问一组共享变量,使得两个线程不可能同时进入临界区(只要cpu内存模型是遵循顺序一致性的),从而达到线程同步的目的。以下是该算法的一种实现:static volatile int flag1 = ...
分类:
编程语言 时间:
2015-04-25 00:06:40
阅读次数:
234
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于....
分类:
编程语言 时间:
2015-04-24 01:03:21
阅读次数:
235
一个对象中有一个状态 属性,现在业务需求 存在多线程来修改 和 拿去 这个状态 的值,这种情况如果加锁怎么加?一种是 在 set 和get 这个状态的 方法那加 synchronized 。还有一种方法 是set 方法那还是通过 synchronized 加锁,而 get 那就不用synchroni...
分类:
其他好文 时间:
2015-04-21 14:27:26
阅读次数:
122
一、C#中volatilevolatile是C#中用于控制同步的关键字,其意义是针对程序中一些敏感数据,不允许多线程同时访问,保证数据在任何访问时刻,最多有一个线程访问,以保证数据的完整性,volatile是修饰变量的修饰符。当一个变量定义为volatile时,读取这个变量的值时候每次都是从mome...
分类:
其他好文 时间:
2015-04-21 00:09:14
阅读次数:
163
问题:建两线程,线程1进行计算1*1+~+99*99,线程2打印出线程1名字,每隔段时间读取一次线程1的计算结果? 1 public class Other{ 2 public static volatile int sum; 3 public static void main(St...
分类:
编程语言 时间:
2015-04-20 14:29:44
阅读次数:
204
今天重新温习了一下C语言的指针部分,突然想到了经常会碰见的一种宏定义:#define PGAS (*((volatile unsinged long *)(x))) 在解析该宏定义前,先看看指针变量的声明 声明一个int类型的指针变量:int* p; 仅仅是这样定义,这个指针是不能够直...
分类:
其他好文 时间:
2015-04-19 00:59:09
阅读次数:
233
今天看书,Thinking in c++ volume 2 "Adaptable function objects"里面作者说:Suppose, for example, that we want to make the function object gt_n, definedearlier in...
分类:
其他好文 时间:
2015-04-18 15:59:33
阅读次数:
874
线程带来的问题:a)安全性问题b)活跃性问题c)性能问题要编写线程安全的代码其核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问Java中的主要同步机制是关键字synchronized,它提供了一种独占的加锁方式,”同步”这个术语还包括volatile类型的变量,显示锁以及原子变量在...
分类:
编程语言 时间:
2015-04-17 18:03:51
阅读次数:
269
参考:https://msdn.microsoft.com/en-us/library/x13ttww7(VS.80).aspxhttp://stackoverflow.com/questions/2474945/is-it-safe-to-use-a-boolean-flag-to-stop-a-...
分类:
编程语言 时间:
2015-04-17 17:27:01
阅读次数:
147