class timestamp:publicmymuduo::copyable,
public boost::equality_comparable,
public boost::less_than_comparable;
主要是實現了時間戳的相關操作,例如時間戳的格式化,返回當前時間戳等等。
private: int64_t m_microseconds;
//資料成員,表示時間戳的微秒數
public:
static
const
int microsecinsec=1000*1000;//
1秒=1000*1000微妙
timestamp():m_microseconds(0);
//建構函式,設定mircroseconds值
explicit
timestamp(int64_t ms):m_microseconds(ms);
//交換兩個timestamp物件的值
void swap(timestamp&that);
//用std::string形式返回,格式[millisec].[microsec]
string tostring() const
;
//格式, "%4d年%02d月%02d日 星期%d %02d:%02d:%02d.%06d",時分秒.微秒
string toformattedstring(bool ifshowmicrosec=true) const;
//判斷當前時間錯是否合法,即是否》0
bool valid() const;
//返回當前時間戳的微妙
int64_t microsecsinceepoch() const;
//返回當前時間戳的秒數
time_t secsinceepoch() const;
//返回當前時間所在的時間戳
static
timestamp now();
static
timestamp invalid();
//返回time_t所在的時間戳
static
timestamp fromunixtime(time_t t);
//返回time_t以microsec為偏移所在的時間戳
static timestamp fromunixtime(time_t t,int microsec);
應當注意timestamp繼承了boost等於和小於類,為了實現timestamp的比較操作符,應當過載timestamp的《和==操作符。
//繼承了boost的比較類,需要自己實現《和==操作符的過載
inline bool
operator
<(timestamp l,timestamp r)
inline
bool
operator==(timestamp l,timestamp r)
//返回兩個時間戳的差,用秒的形式返回
inline double
timedifference(timestamp high,timestamp low)
//返回乙個時間戳加上給定秒數的新的時間戳
inline timestamp addtime(timestamp ts,double
sec)
muduo原始碼解析之EventLoopThread
回到tcpserver,我們記得裡面有乙個eventloopthreadpool,根據名字,這是乙個執行緒池,它主要用於管理所有的eventloop,每個eventloop對應乙個執行緒。當新連線到來時,acceptor事件分發器將連線分發到合適的執行緒中。執行緒裡面核心是執行eventloop類裡...
python入門 1模組 1 time
1 簡介 time模組提供兩種時間的表示方式 第一種 是時間戳方式 相對於1970年1月1日 00 00 00的秒數偏移 第二種 以陣列形式表示 struct time 共有九個元素 2 函式介紹 2.1 asctime asctime tuple string 將乙個struct time 預設為...
讀Muduo原始碼筆記 1
物件銷毀時出現的競態條件 執行緒安全的類 簡單的執行緒安全類 class counter int value const int getandincrease private int value mutable mutexlock mutex int counter value const int ...