在一个进程中运行多线程
如下图,左图表示有三个进程(process),每个进程中各有一个线程; 而右图则只有一个进程(process),只不过在该进程中含有三个线程。
进程与线程运行的区别
图中,线程用线条表示,进程用圆圈表示。
2、进程与线程在实现上的区别
- 进程的理解——单线程
比如一个C语言实验,为完成一个任务需要 p1、p2、p3 三个进程,如下图。
进程运行及其实现代码示例
- 如上图,最常规的做法如下:
先做完 p1(实现 c1=a b)-----> 再做 p2(实现 c2=a-b)----->最后再做 p3(实现 c3=a*b)。
需要注意的是:p1、p2、p3 是不能同时运行的,只有 p1 运行完后 p2 运行,最后 p3 运行, 可以理解它们是顺序进行的。
- 线程的理解——多线程
而在 Linux 和其他网络编程环境下,OS(操作系统)提供了一种多线程的机制,pthread_create( )、pthread_join( )、pthread_exit( )函数分别提供多线程的创建、加入和退出功能(以Linux为例), 从而实现多线程并发处理。
多线程的并发处理