青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

遨游Code Sky

共享今天Code Sky, 共創明天Code Sky!

C++博客 首頁 新隨筆 聯系 聚合 管理
  12 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks
       Log4cpp 是 Log4J 的 C++ 移植版本,開放源代碼并且完全免費。與 Log4J 能夠跨平臺一樣,Log4cpp 也致力于寫出跨平臺的 C++ 程序。Log4cpp 主要是用于 C++ 程序中寫 log 文件,與此同時,Log4cpp 中有很多有用的類庫,對于寫跨平臺 C++ 程序的人來說,可以直接拿來用,或者作為自己寫跨平臺類的參考。

Log4cpp 中的跨平臺類庫有明顯的 Java 痕跡,比如 Class、Object 、Loader、Locale 等類。 Log4cpp 中的類都可以根據類名 new 出一個 instance,其實現的方式和 MFC 如出一轍:通過 C++ 強大的宏來實現。

Log4cpp 中的跨平臺類庫主要有:

信號類:Condition(broadcast,signal,wait),CriticalSection(lock,unlock),WaitAccess,Event(set,reset,wait),Mutex(lock,unlock),Semaphore(wait,tryWait,post)

網絡類:InetAddress,Socket,ServerSocket,DatagramSocket,SocketInputStream,SocketOutputStream

日期類:DateFormat,DateTimeDateFormat,System(currentTimeMillis)

文件類:FileWatchdog(doOnChange)

內存操作類:基于引用計數機制的智能指針 ObjectPtrT

字符串操作類:StrictMath,StringHelper(toUpperCase,toLowerCase,trim,equalsIgnoreCase,endsWith,format),StringTokenizer

線程類:Thread(start,run,join)

使用以上的類不用考慮 thread handle, event handle, socket handle 之類的 handle 問題,所有這些文件已經被封裝了。很好用,對不對?

不足之處在于沒有 GUI 類。ANSI C++ 中對于目錄等文件系統的處理功能較弱,這里面也沒有目錄處理類。另外 Socket 的 read(void * buf, size_t len) 不能設置 timeout,并且如果讀取數據個數小于 len 那么 read 函數將一直堵塞,不太好用,很可惜。實際的使用上面,可以考慮做一個 Socket 子類,重寫 read() 函數。

以下是一個示例程序,在 VC6 下編譯運行通過,代碼中有中文全角空格。


#include "stdafx.h"

#include <log4cxx/helpers/thread.h>
#include <log4cxx/helpers/mutex.h>
using namespace log4cxx;
using namespace log4cxx::helpers;

#include <iostream>
#include <vector>
using namespace std;

class MyOutputer{
private:
   Mutex m_outputLock;
public:
   void output(const char * msg){
     m_outputLock.lock();
     cout << msg << endl;
     m_outputLock.unlock();
   }
};

class MyThread : public Thread{
private:
   bool m_running;
   MyOutputer m_out;
public:
   MyThread(){m_running = false; }
   virtual ~MyThread(){}

  virtual void run(){
     m_running = true;
     //循環十次,執行十秒
     for(int i =0; i < 10 && m_running; i++){
       m_out.output("MyThread running...");
       Thread::sleep(1000);
     }
   }

  void stop(){
     m_running = false;
   }
};
typedef ObjectPtrT<MyThread> MyThreadPtr;

int main(int argc, char* argv[])
{
   MyOutputer out;
   out.output("main begin...");

  vector<MyThreadPtr> threadList;
   int count = 5, i=0;
   for(i =0; i< count; i++){
     MyThread *pThread = new MyThread();
     threadList.push_back(pThread);
   }

  out.output("main start all threads...");
   for(i =0; i< count; i++){
     MyThread *pThread = threadList[i];
     Thread::sleep(300);
     pThread->start();
   }

  out.output("main sleep 4 seconds...");
   //等 4 秒,停止所有線程
   Thread::sleep(4000);

  out.output("main stop all threads...");
   for(i =0; i< count; i++){
     MyThread *pThread = threadList[i];
     pThread->stop();
   }
  
   out.output("main wait all threads...");
   //等待所有線程中止
   for(i =0; i< count; i++){
     MyThread *pThread = threadList[i];
     pThread->join();
   }

  threadList.clear();
   //所有線程對象被自動銷毀

  out.output("main end");

  return 0;
}

 

posted on 2007-09-24 17:26 劉遠清 閱讀(425) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            制服丝袜亚洲播放| 亚洲区在线播放| 性色av一区二区三区红粉影视| 亚洲国产精品精华液2区45| 久久综合给合| 亚洲欧洲精品一区二区三区不卡 | 国产精品大片| 亚洲一区二区三区国产| 亚洲午夜国产成人av电影男同| 欧美色欧美亚洲高清在线视频| 亚洲一区二区三区午夜| 亚洲一区黄色| 黄色成人av网站| 欧美激情中文字幕一区二区 | 亚洲人成毛片在线播放| 欧美日韩国产成人| 午夜国产精品视频免费体验区| 午夜在线精品| 91久久久亚洲精品| 中文日韩在线视频| 国产自产女人91一区在线观看| 久久日韩精品| 欧美日韩国产精品一卡| 欧美诱惑福利视频| 免费观看成人www动漫视频| 在线一区二区三区做爰视频网站| 亚洲一区综合| 亚洲精品少妇30p| 亚洲一区二区三区四区视频| 黑人一区二区| 99热这里只有精品8| 国模吧视频一区| 亚洲美女视频网| 韩国v欧美v日本v亚洲v| 亚洲毛片在线免费观看| 精品999久久久| 亚洲无吗在线| 亚洲国产另类久久久精品极度| 亚洲素人在线| 亚洲国产日韩欧美在线99| 亚洲视频一二区| 亚洲福利视频网站| 亚洲综合成人婷婷小说| 日韩午夜中文字幕| 久久久久久网址| 欧美亚洲在线播放| 欧美日韩一区在线观看视频| 美国十次成人| 国产欧美精品在线观看| 亚洲乱码国产乱码精品精可以看| 精品av久久707| 欧美亚洲在线观看| 亚洲综合另类| 欧美日韩在线三区| 亚洲国产视频直播| 精品1区2区| 欧美在线综合| 欧美在线观看视频| 国产精品成人一区二区艾草| 亚洲国产欧美另类丝袜| 亚洲国产欧美一区二区三区丁香婷| 亚洲一区二区三区在线观看视频 | 精品999日本| 亚洲欧美色一区| 亚洲午夜精品| 欧美少妇一区二区| 亚洲另类在线一区| 一区二区三区欧美视频| 欧美国产一区二区在线观看 | 久久久久看片| 国内精品久久久久久 | 奶水喷射视频一区| 欧美福利电影网| 亚洲国产精品悠悠久久琪琪| 久久久女女女女999久久| 久久精选视频| 在线免费观看视频一区| 久久亚裔精品欧美| 欧美国产精品专区| 亚洲理论电影网| 欧美精品一区三区在线观看| 亚洲国产黄色| 一区二区日韩精品| 国产精品久久久91| 午夜精品在线看| 久久一区中文字幕| 亚洲国产午夜| 欧美日本一区二区高清播放视频| 亚洲美女黄色| 欧美在线www| 亚洲盗摄视频| 欧美另类高清视频在线| 一本色道久久综合亚洲精品不| 亚洲午夜精品久久| 国产欧美日韩综合一区在线播放| 久久超碰97人人做人人爱| 免费亚洲一区二区| 一区二区欧美精品| 国产美女精品人人做人人爽| 欧美影院在线播放| 亚洲欧洲精品一区二区三区 | 亚洲欧美激情一区| 国产婷婷色一区二区三区四区| 久久久99爱| 9l视频自拍蝌蚪9l视频成人| 久久精品国产清高在天天线| 亚洲国产精品久久久久秋霞蜜臀 | 国产视频在线一区二区 | 亚洲一区二区3| 免费观看久久久4p| 亚洲一区免费视频| 亚洲成人在线视频网站| 欧美日韩国产美| 欧美在线|欧美| 亚洲精品自在久久| 久久男女视频| 亚洲中字在线| 亚洲欧洲精品一区二区三区波多野1战4 | 久久激情视频免费观看| 日韩午夜在线| 在线看国产一区| 国产麻豆精品theporn| 欧美日本中文| 久久精品91| 亚洲女人小视频在线观看| 亚洲电影免费在线| 久久香蕉国产线看观看网| 亚洲女人小视频在线观看| 日韩视频一区二区三区| 一区视频在线| 国产小视频国产精品| 欧美日韩在线不卡| 欧美激情一区二区三区蜜桃视频| 欧美一区二区在线看| 亚洲一区二区三区免费在线观看 | 久久全国免费视频| 午夜一级久久| 亚洲一区二区免费在线| 亚洲日本va午夜在线电影| 尤物yw午夜国产精品视频| 国产亚洲精品久久久久动| 欧美午夜电影网| 欧美日韩精品系列| 欧美精品精品一区| 欧美精品久久天天躁| 欧美激情精品久久久久久黑人| 久久成人亚洲| 久久精品一区四区| 欧美专区福利在线| 久久精品72免费观看| 久久精品视频免费播放| 久久国产精品久久久久久久久久| 午夜视黄欧洲亚洲| 亚欧美中日韩视频| 欧美在线观看网址综合| 久久精品日产第一区二区| 久久免费黄色| 欧美黄色一区二区| 欧美三级日韩三级国产三级| 欧美午夜剧场| 国产日韩欧美精品综合| 激情文学综合丁香| 亚洲精品乱码久久久久久黑人| 99亚洲伊人久久精品影院红桃| 99精品国产一区二区青青牛奶 | 樱花yy私人影院亚洲| 影音先锋一区| 日韩一区二区高清| 亚洲自拍偷拍色片视频| 久久成人精品一区二区三区| 久久亚洲高清| 亚洲国产三级| 亚洲摸下面视频| 久久精品视频在线播放| 免费人成精品欧美精品| 欧美性片在线观看| 国内久久精品视频| 亚洲激情在线观看| 亚洲一区二区三区四区视频| 欧美一区二区三区久久精品茉莉花 | 伊人夜夜躁av伊人久久| 亚洲日本国产| 欧美一区二区啪啪| 欧美华人在线视频| 亚洲先锋成人| 久久综合999| 国产精品第一区| 亚洲国产99| 午夜欧美理论片| 亚洲国产成人不卡| 午夜亚洲性色视频| 欧美精品粉嫩高潮一区二区| 国产日韩欧美精品| 亚洲视频一区二区| 欧美激情91| 午夜免费电影一区在线观看| 欧美成人日本| 韩国三级电影久久久久久| 亚洲婷婷在线| 91久久在线|