在Doug Lea提供的cucurenct包(J.U.C)中,CAS理论是实现整个java包的基石。Compare and Swap在这里,CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。这个指令会对内存中的共享数据做原子的读写操作。简单介绍一下这个指令的操作过程...
分类:
编程语言 时间:
2014-09-12 23:18:24
阅读次数:
330
在2g内存的台式机里安装了三台虚拟机,跑起来好可以,就是swap用的比较多,图见上一篇随笔。现在平台基本有了,自己笔记本算总控,实验室台式机跑着4台机器(一实三虚),加上一台服务器,可以做很多事情了,由于kvm是桥接网络,三虚跟一实地位一致,在校园网内都含有自己的ipv4,ipv6地址。ipv4.....
分类:
其他好文 时间:
2014-09-12 18:41:44
阅读次数:
355
题目:输入三个整数x,y,z,请把这三个数由小到大输出。def swap(a,b): t=a; a=b; b=t; return (a,b);def foo(x,y,z): if x>y: (x,y)=swap(x,y) if x>z: ...
分类:
编程语言 时间:
2014-09-12 17:03:33
阅读次数:
195
今天在看一段c代码的时候看到一个函数的形参是(int *&a)居然是这个东西,这让我好生疑惑啊,不知道用这么多的地址符号用意何在呢?传址么?那也不必这样,只需要用指针完全能够达到这样的效果啊,交换两个整形变量的数据,只要定义一个函数 swap(int* a,int *b) 在函数里面交换*a和*b的...
分类:
编程语言 时间:
2014-09-11 23:36:42
阅读次数:
189
最近服务器程序出了一个崩溃,确定是内存地址访问越界,但是不能定位在哪里,没办法只好用valgrind来跑一下,以前公司的服务器是上都默认安装了,突然发现云服务器上没有安装这个软件,所以记录一下如何安装。 1、下载最新版本的valgrind: http://www.valgrind.org/downloads/valgrind-3.9.0.tar.bz2 解压安装...
分类:
系统相关 时间:
2014-09-11 19:23:02
阅读次数:
292
dd#include using namespace std;void swap(char *a, char *b) { char tmp; tmp = *a; *a = *b; *b = tmp; } void perm(char ...
分类:
其他好文 时间:
2014-09-10 23:49:41
阅读次数:
291
最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符template void swap ( T& a, T& b ) { T c(a); a=b; b=c; } 需要构建临时对象,一个拷贝构造,两次赋值操作。针对int型优化void swap(int & ...
分类:
编程语言 时间:
2014-09-10 23:49:31
阅读次数:
307
静态链接大家并不陌生,本文将从二进制代码来分析静态链接的本质。 首先列出将要静态的链接的两个源文件,它们分别是a.c和b.c,最后链接成功的文件为ab。 a.c代码如下:extern int shared;
extern void swap(int * ,int *);
int main(){
int a = 100;
swap( &a, &shared );
} b.c代...
分类:
其他好文 时间:
2014-09-10 10:55:50
阅读次数:
254
之前做过实验而未做记录,今天在生产坏境中再次遇到。现将整个操作过程记录如下,供以后参考使用:使用free-m查看现在swap的大小:[root@mcluster-alpha2-node2~]#free-mtotalusedfreesharedbufferscachedMem:48227478703560186228928-/+buffers/cache:1707931148Swap:59995138..
分类:
其他好文 时间:
2014-09-10 02:53:00
阅读次数:
187
一直不明白形参里什么时候用引用,什么时候不用引用。今天去查了一下:引用的好处: 1.向函数传递较大的对象时,需要使用引用形参,比如string这种不知道会有多大的类型; 2.如果要改变实参的值,引用用起来方便,可以回想一下学引用的第一个例子swap函数,比指针方便多了;其次,如果不想改变实参的值.....
分类:
其他好文 时间:
2014-09-09 22:44:59
阅读次数:
250