基于C++实现的线程休眠代码
2014-10-08 10:04
1246 查看
linux平台示例如下:
/* 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库实现示例如下:
/* 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
希望本文所述对大家的C++程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- [algorithm,c++] 基于c++的二维k-means代码实现
- 理解Node.js的事件循环(代码是异步单线程,内部实现用的还是进程和线程,基于池化的线程实现异步)
- 基于visual c++之windows核心编程代码分析(53)在C++中嵌入汇编实现DLL注入源代码
- C++基于Directx MMX实现的图像灰度转换代码
- C++实现一个线程安全的单例工厂实现代码
- 基于最小二乘法的曲线拟合的C++代码的实现
- 线程休眠代码(C++)
- 基于C++和OpenCv的SIFT_图像局部特征检测算法代码的实现
- 基于vlfeat的HOG特征提取c++代码实现
- 线程之间利用信号量协调对共享资源访问的c++代码实现
- 基于visual c++之windows核心编程代码分析(53)在C++中嵌入汇编实现DLL注入源代码
- C++中实现线程的休眠
- C++实现线程休眠
- 一个简单的AJAX实现,基于C#的ASP.Net,包括服务器端的程序代码
- 用C/C++实现SMC动态代码加密技术
- 基于泛型的延时加载集合实现代码
- 用C/C++实现SMC动态代码加密技术
- 基于.Net平台应用程序唯一运行实例C#代码实现
- Singleton模式的C++实现研究(示例代码)
- Singleton模式的C++实现研究(示例代码)