原标题:C中的多线程
什么是线程?
线程是进程内的单个序列流。由于线程具有某些进程属性,因此它们有时称为轻量级进程。
进程和线程有什么区别?
线程并不是独立于其他类似的进程,因此线程与其他线程共享其代码段,数据段和OS资源(如打开文件和信号)。但是,与进程一样,线程有自己的程序计数器(PC),寄存器集和堆栈空间。
为何选择多线程?
线程是通过并行性改进应用程序的流行方式。例如,在浏览器中,多个选项卡可以是不同的线程。MS word使用多个线程,一个线程用于格式化文本,另一个线程用于处理输入等。
由于以下原因,线程比进程运行得更快:
1)线程创建要快得多。
2)线程之间的上下文切换要快得多。
3)线程可以轻松终止
4)线程之间的通信更快。
有关详细信息,请参阅http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/threads.htm。
我们可以用C编写多线程程序吗?
与Java不同,语言标准不支持多线程。POSIX线程(或Pthreads)是线程的POSIX标准。gcc编译器可以实现pthread。
一个简单的C程序,用于演示pthread基本函数的使用
请注意,下面的程序只能使用带有pthread库的C编译器进行编译。
#include
#include
#include //Header file for sleep(). man 3 sleep for details.
#include </