上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 31 下一页
  2012年11月21日
摘要: 本文即考虑了线程安全,又保证了效率,代码为单例,语言为C++,代码如下:#include <iostream>using namespace std;void Lock(){ //some mutex code}void UnLock(){ //some mutex code}class Singleton{public: static Singleton* GetInstance() { if (m_Instance == NULL) // 如果已经创建了单例,那么就不用每次进去加锁了 { ... 阅读全文
posted @ 2012-11-21 22:05 kkmm 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 本文的单例代码考虑了线程安全,但是由于每次Lock() UnLock()所花费的时间比较多,所以效率不高,代码如下:#include <iostream>using namespace std;void Lock(){ //some mutex code}void UnLock(){ //some mutex code}class Singleton{public: static Singleton* GetInstance() { Lock(); if (m_Instance == NULL) // 如果在这句... 阅读全文
posted @ 2012-11-21 22:03 kkmm 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 本文实现的是不考虑线程安全的初级单例Singleton的C++代码,目的是为了学习单例,考虑线程安全的代码放在后面的blog里。#include <iostream>using namespace std;class Singleton{public: static Singleton* GetInstance() // 得到单例 { if (m_Instance == NULL) { m_Instance = new Singleton(); cout<<"m_Instance ... 阅读全文
posted @ 2012-11-21 21:50 kkmm 阅读(274) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>using namespace std;class A{public: A() { //test = 1; //aa } static int test;};int A::test = 1; //bbint main(){ cout<<A::test<<endl; return 1;}根据C++ Primer中所叙述,static成员必须在类外进行初始化,而不能在构造函数内进行初始化,于是进行如下实验:1 令aa行enable,令bb行disable,链接提示:1... 阅读全文
posted @ 2012-11-21 21:34 kkmm 阅读(3580) 评论(1) 推荐(0) 编辑
摘要: 问题定位步骤:1、 用root帐户 遍历 /proc/进程ID/fd目录,如果该目录下文件数比较大(如果大于10,一般就属于socket泄漏),根据该进程ID,可以确认该进程ID所对应的名称。2、 重启程序恢复服务,以便后续查找问题。3、 strace 该程序并记录strace信息。strace –p 进程ID >>/tmp/stracelog.log 2>&14、 查看 /proc/进程ID/fd 下的文件数目是否有增加,如果发现有增加,记录上一个socket编号,停止strace5、 确认问题代码的位置。打开/tmp/stracelog.log,从尾部向上查找cl 阅读全文
posted @ 2012-11-21 11:19 kkmm 阅读(357) 评论(0) 推荐(0) 编辑
  2012年11月15日
摘要: (1)真正做到‘善护口业,不讥他过’,使自己能尽最大的努力修好十善业,积累往生的福德资粮。同时可以防止辛苦修积来的一点福报从说话之中流失掉,也可避免因口过而招来的麻烦和灾祸,在较大的程度上断绝了菩提道上的业因业缘。 (2)能够避免犯破六和敬,破坏正法道场的重罪。谚语有谓‘人平不语,水平不流’,易经上也说‘吉人寡语’。凡夫喜欢杂心闲话,其实是由于内心里贪瞋痴慢的烦恼习气太重,不说话就难受,总要找话题来消遣消遣,太喜欢说话的人确实是心不在道。而且可以说明他几乎还没有觉悟,还没有真正生起了生死出三界之心。如果是真正的修道人,心里常存惭愧,一定会珍惜光阴,把精力用在听经、讲经、看书、念佛、拜佛。凡夫说 阅读全文
posted @ 2012-11-15 10:46 kkmm 阅读(365) 评论(0) 推荐(0) 编辑
摘要: SilverLight可以看作是WPF的一个简化版本,或者一个轻量版本。 SilverLight是基于浏览器插件的,在浏览器中运行,服务器端不需要部署任何环境,客户端只需要安装Runtime浏览器插件,无须安装.net Framework 3.0。所以,SilverLight的运行环境不受操作系统和浏览器的种类限制(更准确的说,是受到较少的限制)。 WPF可以编写Web程序或者桌面应用程序,可以直接编译为独立运行的.Exe文件。WPF运行时必须安装.net Framework 3.0。这就要求WPF目前运行的操作系统必须是Windows Vista或者Windows XP SP2。 此外,Si 阅读全文
posted @ 2012-11-15 10:20 kkmm 阅读(7831) 评论(1) 推荐(1) 编辑
摘要: 今天写程序,突然发现之前的一个程序编译会出错,奇怪之,之前都好好的呀。后来定位问题,发现该程序引用了本工程common下的typedefine.h,而其中有这样的代码在此期间被添加:#ifdef __x86_64__#define size_t unsigned long#else#define size_t unsigned int#endif而这个程序还自己引用了 #include <string> string里本身就include了系统的 size_t ,这样就冲突了。解决办法:不要自己写size_t,而是#include <include/linux/types.h 阅读全文
posted @ 2012-11-15 10:19 kkmm 阅读(376) 评论(0) 推荐(0) 编辑
  2012年10月29日
摘要: 有的时候,程序异常崩溃会导致值为大于0的信号量遗留了下来进入下一次程序的执行(因为信号量在系统内核里),所以在使用完毕时,需要对信号量进行销毁。销毁代码如下:sem_t st = sem_open("TEST", O_CREAT, 0644, 0);int rt = sem_close(st);int rt2 = sem_unlink("TEST");注意,sem_close是销毁有名信号量,sem_destroy是销毁无名信号量。(但是好像他俩不干什么活,还是sem_unlink干活!) 阅读全文
posted @ 2012-10-29 15:08 kkmm 阅读(2407) 评论(0) 推荐(0) 编辑
  2012年9月24日
摘要: #include <cstdlib>#include <iostream>using namespace std;#define MAXLEN 40void printline(int i){//i用来指示当前行剩余钻石的个数 char cstr[MAXLEN] = {0}; memset(cstr, '\0', MAXLEN); int mid = MAXLEN / 2; int j, k; //初始化,根据奇偶决定是否打印第一行 if (i % 2 != 0) { cstr[mid] = '*'; ... 阅读全文
posted @ 2012-09-24 21:40 kkmm 阅读(3965) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 31 下一页