Linux 线程编程之二
Posted Fresh_Air_Life
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 线程编程之二相关的知识,希望对你有一定的参考价值。
多线程程序作为一种多任务、并发的工作方式,当然有以下的优点:
1) 提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。
2) 使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。
3) 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。
线程编程实例1.
/* example.c*/ #include <stdio.h> #include <pthread.h> void thread(void) int i; for(i=0;i<3;i++) printf("This is a pthread.n"); int main(void) pthread_t id; int i,ret; ret=pthread_create(&id,NULL,(void *) thread,NULL); if(ret!=0) printf ("Create pthread error!n"); exit (1); for(i=0;i<3;i++) printf("This is the main process.n"); pthread_join(id,NULL); return (0); |
编译此程序:
gcc example1.c -lpthread -o example1 |
运行example1,我们得到如下结果:
This is the main process. This is the main process. This is the main process. This is a pthread This is a pthread This is a pthread |
上面的示例中,我们使用到了两个函数,pthread_create和pthread_join,并声明了一个pthread_t型的变量。pthread_t在头文件/usr/include/bits/pthreadtypes.h中定义:
typedef unsigned long int pthread_t;
gcc example1.c -lpthread -o example1 |
以上是关于Linux 线程编程之二的主要内容,如果未能解决你的问题,请参考以下文章