基于C++實(shí)現(xiàn)的線程休眠代碼
本文實(shí)例講述了基于C++實(shí)現(xiàn)的線程休眠代碼,分享給大家供大家參考。具體方法如下:
linux平臺(tái)示例如下:
/* File : thread1.c Author : Mike E-Mail : Mike_Zhang@live.com */ #include <stdio.h> #include <pthread.h> #include <time.h> void m_threadSleep(int sec,int nsec) { struct timespec sleepTime; struct timespec returnTime; sleepTime.tv_sec = sec; sleepTime.tv_nsec = nsec; nanosleep(&sleepTime, &returnTime); } void test1() { m_threadSleep(1,0); printf("I'm thread1 ...\r\n"); } void test2() { m_threadSleep(2,0); printf("I'm thread2 ...\r\n"); } int main() { pthread_t thread1,thread2; void *result; time_t tbegin,tend; tbegin = time(NULL); pthread_create(&thread1,NULL,(void*)&test1,NULL); pthread_create(&thread2,NULL,(void*)&test2,NULL); pthread_join(thread1,&result); pthread_join(thread2,&result); tend = time(NULL); printf("%d\r\n",tend-tbegin); return 0; }
編譯代碼如下:
gcc thread1.c -o thread1 -lpthread
boost庫(kù)實(shí)現(xiàn)示例如下:
/* File : boost_thread1.cpp Author : Mike E-Mail : Mike_Zhang@live.com */ #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/thread/thread.hpp> #include <iostream> boost::xtime getSleepTime(int sec,int nsec) { boost::xtime t; boost::xtime_get(&t, boost::TIME_UTC); t.sec += sec; t.nsec += nsec; return t; } void test1() { boost::this_thread::sleep(getSleepTime(1,500)); std::cout <<"I'm thread1 !"<< std::endl; } void test2() { boost::this_thread::sleep(getSleepTime(3,500)); std::cout <<"I'm thread2 !"<< std::endl; } int main(int argc, char* argv[]) { boost::thread thrd1(&test1); boost::thread thrd2(&test2); std::time_t t_begin,t_end; t_begin = time(NULL); thrd1.join(); thrd2.join(); t_end = time(NULL); std::cout<<t_end-t_begin<<std::endl; return 0; }
編譯命令如下:
g++ boost_thread1.cpp -o boost_thread1 -lboost_thread-mt
希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。
相關(guān)文章
C語(yǔ)言中快速排序和插入排序優(yōu)化的實(shí)現(xiàn)
這篇文章主要介紹了C語(yǔ)言中快速排序和插入排序優(yōu)化的實(shí)現(xiàn),包括雙向劃分快速排序方法的介紹,需要的朋友可以參考下2015-11-11一文帶你快速了解C/C++標(biāo)準(zhǔn)庫(kù)中的ptrdiff_t
ptrdiff_t是C/C++標(biāo)準(zhǔn)庫(kù)中定義的一個(gè)與機(jī)器相關(guān)的數(shù)據(jù)類型,ptrdiff_t類型變量通常用來(lái)保存兩個(gè)指針減法操作的結(jié)果,下面這篇文章主要給大家介紹了關(guān)于C/C++標(biāo)準(zhǔn)庫(kù)中ptrdiff_t的相關(guān)資料,需要的朋友可以參考下2022-11-11C語(yǔ)言中關(guān)于樹(shù)和二叉樹(shù)的相關(guān)概念
這篇文章主要介紹了Java?數(shù)據(jù)結(jié)構(gòu)之樹(shù)和二叉樹(shù)相關(guān)資料,文中通過(guò)示例代碼和一些相關(guān)題目來(lái)做介紹,非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02實(shí)現(xiàn)一個(gè)random?shuffle算法示例
這篇文章主要為大家介紹了實(shí)現(xiàn)一個(gè)random?shuffle算法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05MFC Frame-Splitter模型實(shí)例原理解析
這篇文章主要介紹了MFC Frame-Splitter模型實(shí)例原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07C++容器適配與棧的實(shí)現(xiàn)及dequeque和優(yōu)先級(jí)詳解
這篇文章主要介紹了C++容器適配與棧的實(shí)現(xiàn)及dequeque和優(yōu)先級(jí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10C語(yǔ)言實(shí)現(xiàn)計(jì)算樹(shù)的深度的方法
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)計(jì)算樹(shù)的深度的方法,針對(duì)數(shù)據(jù)結(jié)構(gòu)中樹(shù)進(jìn)行操作的方法,在算法設(shè)計(jì)中比較常見(jiàn),需要的朋友可以參考下2014-09-09