`
- 浏览:
481023 次
-
1、多进程编程
-
#include<stdlib.h>
-
#include<sys/types.h>
-
#include<unistd.h>
-
-
intmain()
-
{
-
pid_tchild_pid;
-
-
-
child_pid=fork();
-
if(child_pid==0)
-
{
-
printf("childpid\n");
-
exit(0);
-
}
-
else
-
{
-
printf("fatherpid\n");
-
sleep(60);
-
}
-
-
return0;
-
}
2、多线程编程
-
#include<stdio.h>
-
#include<pthread.h>
-
-
structchar_print_params
-
{
-
charcharacter;
-
intcount;
-
};
-
-
void*char_print(void*parameters)
-
{
-
structchar_print_params*p=(structchar_print_params*)parameters;
-
inti;
-
-
for(i=0;i<p->count;i++)
-
{
-
fputc(p->character,stderr);
-
}
-
-
returnNULL;
-
}
-
-
intmain()
-
{
-
pthread_tthread1_id;
-
pthread_tthread2_id;
-
structchar_print_paramsthread1_args;
-
structchar_print_paramsthread2_args;
-
-
thread1_args.character='x';
-
thread1_args.count=3000;
-
pthread_create(&thread1_id,NULL,&char_print,&thread1_args);
-
-
thread2_args.character='o';
-
thread2_args.count=2000;
-
pthread_create(&thread2_id,NULL,&char_print,&thread2_args);
-
-
pthread_join(thread1_id,NULL);
-
pthread_join(thread2_id,NULL);
-
-
return0;
-
}
3、线程同步与互斥
1)、互斥
-
pthread_mutex_tmutex;
-
pthread_mutex_init(&mutex,NULL);
-
-
-
pthread_mutex_tmutex=PTHREAD_MUTEX_INITIALIZER;
-
-
pthread_mutex_lock(&mutex);
-
-
-
thread_flag=value;
-
-
pthread_mutex_unlock(&mutex);
2)、条件变量
-
intthread_flag=0;
-
pthread_mutex_tmutex;
-
pthread_cond_tthread_flag_cv;\
-
-
voidinit_flag()
-
{
-
pthread_mutex_init(&mutex,NULL);
-
pthread_cond_init(&thread_flag_cv,NULL);
-
thread_flag=0;
-
}
-
-
void*thread_function(void*thread_flag)
-
{
-
while(1)
-
{
-
pthread_mutex_lock(&mutex);
-
while(thread_flag!=0)
-
{
-
pthread_cond_wait(&thread_flag_cv,&mutex);
-
}
-
pthread_mutex_unlock(&mutex);
-
-
do_work();
-
}
-
-
returnNULL;
-
}
-
-
voidset_thread_flag(intflag_value)
-
{
-
pthread_mutex_lock(&mutex);
-
thread_flag=flag_value;
-
-
pthread_cond_signal(&thread_flag_cv);
-
pthread_mutex_unlock(&mutex);
-
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
c语言多进程多线程编程
linux系统下,C语言多线程多进程编程
用java实现的操作系统多线程编程,用Eclipse编写。内有实验指导书,导入绝对能运行。
Linux下多线程及多进程及同步与互斥编程详细介绍
c语言多进程多线程编程.pdf.关于c语言开发的注意书籍
c语言多进程多线程编程.doc
统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。 本文我们将介绍在Linux 下编写多进程和多线程程序的一些初步知识。 1 引言 对于没有接触过 Unix/Linux 操作系统的人来说,fork ...
linux下多进程、多线程编程 更多资源请访问http://www.59186618.com
Python3爬虫系列的理论验证,比较同步依序下载、多进程并发、多线程并发和asyncio异步编程之间的效率差别
多线程编程 完美介绍多线程想过技术 进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而...
主要根据本人在UNIX系统上的编程实践经验总结而成, 既做为自己在 一个时期内编程实践的部分总结, 又可成为文章发表. 对UNIX程序员初学者来 说是一个小小的经验, 仅供参考; 对UNIX老手来说则不值一提。 。 6.wait...
unix多线程和多进程同步技术概要,笼罩了常见的unix多线程和多进程函数,还有详细文字介绍。
《C++面向对象多线程编程》共分13章,全面讲解构建多线程架构与增量多线程编程技术。第1章介绍了用于构建面向对象程序的不同类型C++组件,以及如何使用这些组件来构建多线程架构。第2、3、4章简要介绍进程、线程、多...
此书重点描述多进程和多线程编程相关的知识,此书基于go 1.8版本全面更新,结合实际代码例子,更深入秒回Go运行时系统内部原理,本文档附带书中go源码。对于Go语言编程感兴趣的爱好者来说是一本不可多得的好书,非常...