基於C++實現的線程休眠代碼_C 語言

來源:互聯網
上載者:User

本文執行個體講述了基於C++實現的線程休眠代碼,分享給大家供大家參考。具體方法如下:

linux平台樣本如下:

/*File   : thread1.cAuthor  : MikeE-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庫實現樣本如下:

/*File   : boost_thread1.cppAuthor  : MikeE-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

希望本文所述對大家的C++程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.