c++11多线程与POSIX多线程性能比较
来源:互联网 发布:java nio列子 编辑:程序博客网 时间:2024/06/07 01:23
一 代码结构
二 代码详解
1. test.cpp
/************************************************************************* > File Name: test.cpp > Author: wangzhicheng > Mail: 2363702560@qq.com > Created Time: Thu 26 Feb 2015 09:35:49 PM WST ************************************************************************/#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> #include <sys/time.h>#include <sys/types.h>#include <sys/wait.h>#include <pthread.h>#include <iostream>#include <thread>using namespace std;void* fun(void *arg) {return NULL;}void g() {}int main() {int i;pid_t pid;pthread_t tid;struct timeval tv1, tv2;unsigned long long elapse;/* * create processes * *//*gettimeofday(&tv1, NULL);for(i = 0;i < 1000;i++) {pid = fork();if(pid < 0) {perror("fork error...!\n");exit(EXIT_FAILURE);}else if(!pid) {exit(0);}else {wait(NULL);}}gettimeofday(&tv2, NULL);elapse = (tv2.tv_sec - tv1.tv_sec) * 1e6 +(tv2.tv_usec - tv1.tv_usec);cout << elapse << endl; // 2.7026s*//* * create POSIX threads */gettimeofday(&tv1, NULL);for(i = 0;i < 1000;i++) {if(pthread_create(&tid, NULL, fun, NULL)) {perror("threads create error..!\n");exit(EXIT_FAILURE);}pthread_join(tid, NULL);}gettimeofday(&tv2, NULL);elapse = (tv2.tv_sec - tv1.tv_sec) * 1e6 +(tv2.tv_usec - tv1.tv_usec);cout << elapse << endl; // 1.591s/* * create c++11 threads *//*gettimeofday(&tv1, NULL);for(i = 0;i < 1000;i++) {thread mythread(g);mythread.join();}gettimeofday(&tv2, NULL);elapse = (tv2.tv_sec - tv1.tv_sec) * 1e6 +(tv2.tv_usec - tv1.tv_usec);cout << elapse << endl; // 1.848s*/return 0;}
2. makfile
CC=g++all:$(CC) -std=c++0x -g -o test test.cpp -pthread -lpthread
0 0
- c++11多线程与POSIX多线程性能比较
- 多线程中的 WaitForSingleObject 与 EnterCriticalSection 性能比较
- POSIX多线程
- Posix多线程
- POSIX多线程
- posix多线程
- [zz]多线程中的 WaitForSingleObject 与 EnterCriticalSection 性能比较
- POSIX 多线程 编程
- POSIX多线程编程
- Posix多线程编程
- POSIX 多线程程序设计
- POSIX 多线程程序设计
- Posix多线程编程整理
- Posix多线程编程指南
- POSIX多线程编程
- posix 多线程小结
- Pthread:POSIX 多线程程序设计
- Posix thread 多线程编程
- Android 5.0中AudioPatch概念简单探索
- MacBook Pro光驱常年不用,光驱不吸盘,光盘塞不进去了。咋办?
- 微信红包游戏,代码模拟
- 跨平台移动开发实战(一)------总体架构和技术路线
- 自定义动态添加字段内容的库类
- c++11多线程与POSIX多线程性能比较
- JAVASE--正则表达式、反射技术
- FrontEnd 步步高升:bootstrap3-validation.js 必填项星号(*)显示方式修改
- 从网络url读取图片加载到imageview
- POJ题目1840 Eqs(hash)
- js中几种实用的跨域方法原理详解
- spring mvc controller间跳转 重定向 传参
- Java(7)异常/包及访问权限/多线程/泛型
- 关于JDK与Tomcat安装路径修改过后无法正常使用的解放方案