#include <stdio.h>
#include <pthread.h>
#include <sys/time.h>
#define MAX 10
pthread_t thread[MAX];
pthread_mutex_t mut;
long number=0;
int i;
void func()
{
int p=10000000;
while(p--){}
}
void *thread_func()
{
pthread_mutex_lock(&mut);
struct timeval tvStart,tvEnd;
gettimeofday(&tvStart,NULL);
func();
gettimeofday(&tvEnd,NULL);
if(((tvEnd.tv_sec-tvStart.tv_sec)*1000+(tvEnd.tv_usec-tvStart.tv_usec)/1000)>number)
{
number = (tvEnd.tv_sec-tvStart.tv_sec)*1000000+(tvEnd.tv_usec-tvStart.tv_usec);
}
printf("每次的时间: %ld微秒\n",number);
pthread_mutex_unlock(&mut);
sleep(2);
pthread_exit(NULL);
}
void thread_create(void)
{
for(i=0;i<MAX;i++)
{
if(pthread_create(&thread[i], NULL, thread_func, NULL)) //comment2
printf("线程%d创建失败!\n",i);
else
printf("线程%d被创建\n",i);
}
}
void thread_wait(void)
{
for(i=0;i<MAX;i++)
{
pthread_join(thread[i],NULL);
printf("线程%d已经结束\n",i);
}
}
int main()
{
//用默认属性初始化互斥锁
pthread_mutex_init(&mut,NULL);
printf("主函数创建线程\n");
thread_create();
printf("主函数正在等待线程完成\n");
thread_wait();
printf("time costs:%ld\n微秒",number);
return 0;
}
改成c++
void thread_wait()
void *thread_func(void *argv)
c改成这样,gcc编译也ok的
无类型的指针,它的类型将由被赋予的值来决定,如果赋予int 型变量的地址或指针,它就是int型。
第一个c多线程,参考:
http://www.oschina.net/code/snippet_12_366?from=rss
分享到:
相关推荐
父进程创建三个子线程,第一个子线程对数组的前半部分进行选择排序,第二个子进程对数组的后半部分进行选择排序,第三个子线程对两个已经排序好的数组部分进行归并排序,最后当所有子线程结束之后,父进程输出排序好...
该程序是我写的博客“一起talk C栗子吧(第一百二十二回:C语言实例--多线程)”的配套程序,共享给大家使用
操作系统的第二个实验,Linux多线程创建
第一章 关于多线程编程 第二章 线程管理
第1章介绍了用于构建面向对象程序的不同类型C 组件,以及如何使用这些组件来构建多线程架构。第2、3、4章简要介绍进程、线程、多任务处理、多线程化、规划以及线程优先权的概念。第5章讨论进程间和线程间通信。第6章...
1. 实现一个类ThreadMock(模拟线程),用来模仿Thread类,该类具有以下特征: a) Public class ThreadMock implents ...例如第一个线程打印1,接着第二个线程打印100,接着第一个线程打印2。。。。。。。。依此类推。
本书共分9章:第1章介绍多线程的概念和与Windows操作系统一些有关的知识;第2章介绍面向对象和C十、语言的 此知识;第3章介绍线程创建的各种方法,包括利用Wm32 API创建、利用运行时库函数创建和利用MFC中的全局函数...
第1章 Single Threaded Execution——能通过这座桥的,只有一个人 第2章 Immutable——想破坏它也没办法 第3章 Guarded Suspension——要等到我准备好喔 第4章 Balking——不需要的话,就算了吧 第5章 Producer-...
本书每一章都从简单的多线程实例出发逐渐深入,紧紧围绕应用程序实例,向读者展示了利用多线程技术来编写高效、友好的Windows应用程序的方法,并对常用的Win32线程函数进行了深入详细的说明。本书共分8章,第l章介绍...
对于一副图像,比如1000*800分辨率,我们在处理时,通常思路是从第1个像素开始,一直计算到最后一个像素。其实,目前不论手机还是个人电脑,处理器都是多核。那么完全可以将整副图像分成若干块,比如cpu为4核处理器...
多线程方式实现简单易用的套接字,使用TCP协议 阻塞方式. 最大发送数据字节数不宜超过1KB. 同时实现了客户端及服务器端功能,可接收及发送数据. 版本: v1.0.0 第一版本发布时间: 20100823 第一作者: Jef ...
windows多线程编程及配套例程,很小一篇文章(31页),配套9个例程(差第四个例程)
2、支持多任务多线程同时下载; 3、每个任务的线程数由用户在新建任务时自定义,缺省为5个线程; 4、任务下载过程中可以点击“线程+”或“线程-”即时增减线程; 5、选择任务,可以在任务信息栏中查看任务下载的信息...
1、讲解和演示通过多线程技术,实现接收端和发送端在同一进程内同时运行; 2、讲解和演示TCP通讯流程;
如果把初始化数组的代码放在临界区内,另一个线程在第一个线程处理完之前是不会被执行的。 使用临界区的步骤: 1、先声明一个全局变量类型为TRTLCriticalSection; 2、在线程Create()前调用...
该程序是我写的博客“一起talk C栗子吧(第一百一十四回:C语言实例--线程同步之信号量二)”的配套程序,共享给大家使用
#multithreaded-sorting该程序是OS教科书中第4章编程项目2的解决方案。 该程序在命令行上输入... 要编译程序,请使用命令“ gcc part1.c -pthread”。要运行该命令,请在命令行上运行带有数据文件名的可执行文件。
仿多线程的效果一般有2种办法:第一种是通过定时器;第二种是启动多线程,不同模式下启动函数不同,mfc与API与WIN32下面注意点也是有区别的! VC启动一个新线程的三种方法,有需要的朋友可以参考下。 第一种...