2012年11月21日
摘要: #include <iostream>using namespace std;#define LEN 12int FindMinInRotateArray(int *arr, int len, int *min){ if (arr == NULL || len <= 0 || min == NULL) { return -1; } if (len == 2) { *min = arr[1]; return 1; } int mid = len/2; if (arr[0] < arr[mid]) { ... 阅读全文
posted @ 2012-11-21 22:46 kkmm 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 本文即考虑了线程安全,又保证了效率,代码为单例,语言为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) 编辑