- 博客(17)
- 资源 (4)
- 收藏
- 关注
转载 双重检查锁定模式
双重检查锁定模式(也被称为"双重检查加锁优化","锁暗示"(Lock hint)[1]) 是一种软件设计模式用来减少并发系统中竞争和同步的开销。双重检查锁定模式首先验证锁定条件(第一次检查),只有通过锁定条件验证才真正的进行加锁逻辑并再次验证条件(第二次检查)。该模式在某些语言在某些硬件平台的实现可能是不安全的。有的时候,这一模式被看做是反模式。它通常用于减少加锁开销,尤其是为
2013-06-28 16:44:32 1072
转载 Linux写时拷贝技术(copy-on-write)
COW技术初窥: 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢? 在fork之后exec之
2013-06-27 22:29:23 729
转载 测试程序执行时间
本文介绍两种测试程序时间的方法,一种是通过间隔计数,另一种通过周期计数器。针对这两种方法,分别给出Windows和 UNIX 下的实现。 首先介绍这两种方法的含义,摘自《深入理解计算机系统》。间隔计数:操作系统维护者每个进程使用的用户时间量和系统时间量的计数值,当计时器中断发生时,操作系统会确定哪个进程是活动的,并且对那个进程的一个计数值增加计时器间隔时间。如果系统是在内核模式
2013-06-17 18:29:48 785
原创 最小化安装debian后的配置
sudo apt-get install gdm3 x-window-system-core gnome-shell gnome-screensaver sudo apt-get install gnome-shell-extensions network-manager alsa-utils freedesktop-sound-theme file-roller xdg-user-dir
2013-06-16 17:57:54 2265
转载 Google CPU Profiler使用指南及小工具
(一) gperftools-2.0 编译wget https://gperftools.googlecode.com/files/gperftools-2.0.tar.gztar –xzf gperftools-2.0.tar.gzcd gperftools-2.0./configure –prefix=/home/wuzhu/tools/gperftools –en
2013-06-15 23:08:45 8612
转载 gcc调试选项
调试选项(DEBUGGING OPTION)GNU CC拥有许多特别选项,既可以调试用户的程序,也可以对GCC排错: -g 以操作系统的本地格式(stabs, COFF, XCOFF,或DWARF).产生调试信息. GDB能够使用这些调试信息. 在大多数使用stabs格式的系统上, `-g'选项启动只有GDB才使用的额外调试信息;这些信息使GDB 调试效果更好,但是有可能导致其
2013-06-15 22:43:50 3361
转载 彻底释放Linux线程的资源
linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。只有当你调用了pthread_join之后这些资源才会被释放。 若是unjoinable状态的线程,这些资源在线程函数退出时或pthread_exi
2013-06-15 21:33:01 1146
转载 动态库(.so)
Linux中的.so文件类似于Windows中的DLL,是动态链接库,也有人译作共享库(因so的全称为Shared Object)。当多个程序使用同一个动态链接库时,既能节约可执行文件的大小,也能减少运行时的内存占用。[1]对于用户而言,经常遇到的问题是某些应用程序找不到其需要的.so文件:error while loading shared libraries: ...: canno
2013-06-14 16:37:43 987
转载 C++ 获取当前正在执行的函数的相关信息
今天对C++ 工程里面的类里面的方法进行重新命名,发现以前写的一些调试信息也不得不修改:如:int main(int argc,char **argv){ cout<<"Running In Function main"<<endl;}以前,函数名是直接手动写到代码里面的,现在要改还数名,也要同时修改调试语句,这工程量蛮大的,就像找个一劳永逸 的方法。
2013-06-14 11:26:04 1335
转载 解决怪异的Linux脚本无法执行问题
在实际的工作中我们经常会用到Linux的Shell脚本或者其他的脚本语言来帮助我们更好的完成工作,但是有时候,我们也会碰到一些很古怪的问题。比如,下面这样的问题:我写了一个python的脚本,来求两个集合的差集,但是执行的时候发现报错了。tonydeng@nexus-service:statisticus $ ./difference_set.py : 没有该文件或目录on
2013-06-14 10:34:40 1208
转载 C语言的常用类型转换函数(atoi,atol,strtod,strtol,strtoul)
atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include 定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
2013-06-13 21:04:17 8541
转载 C语言的常用类型转换函数(atoi,atol,strtod,strtol,strtoul)
atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include 定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
2013-06-13 20:37:37 1801
原创 error: no matching function for call to 'MainWindow::connect(*&, ...)
强制类型转换一下:connect((QObject*)(sender),...);
2013-06-13 18:10:12 7433
转载 QObject::connect: Cannot queue arguments of type
问题:Hi!I have a small problem concerning two threads and signals/slots connected between them.My connect looks like this....qRegisterMetaTypeQVectorQVectorint> > >("MyArra
2013-06-13 18:04:51 10953 2
转载 Linux学习笔记(八十四)——Qt中的close和closeEvent
对于一个QDialog类的对话框可以用reject()和accept()来控制关闭时的行为。对于QMainWindow而言则可以通过close()信号和closeEvent(QCloseEvent *)函数。当然,这两个都是从QWidget那里继承过来的,所以严格说来只要是Qt控件就都能用,但应该还是对主窗口应用比较多吧。每当点击窗口上方的关闭按钮,就会引发窗口的bool close()响应,
2013-06-13 10:12:47 2277
转载 重定向编译时的警告和错误信息
1.只保留错误信息: make ... 2>log.txt #(注意2和>之间不要空格)2.保留错误信息和警告信息: make ... > log.txt 2>&1 命令语法command > filename 把标准输出重定向到一个新文件中command >> filename 把标准输出重定向到一个文件
2013-06-09 17:55:16 1367
转载 警惕UNIX下的LD_PRELOAD环境变量
警惕UNIX下的LD_PRELOAD环境变量 陈皓 前言 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix下的程序员的注意。 在开始讲述为什么要当心LD_PRELOAD环境变量之前,请让我先说明一下程序的链接。所谓链接,也就是说编
2013-06-03 21:48:34 1127
黑客与画家 epub
2012-06-15
kscope-1.6.2
2012-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人