哈喽。本人刚开始自学linux,学习过程中接触到linux多线程编程。一直以来,对多线程的概念比较含糊,通过网络阅读了许多博文后,有了更清晰的理解。下面整理下来,方便你我。
一、Linux 下的多线程编程
为何要使用多线程?
1)和进程相比,线程是一种更“节俭”的多任务操作方式。因为启动一个进程(电脑上运行了每一个应用程序就是一个进程),就要为它分配独立的地址空间,空间中包括代码段、数据段和堆栈段。而运行在一个进程中的多个线程,由于使用相同的地址空间,共享大部分的数据,启动它花费的空间远远小于进程;另外,线程间切换所需的时间也比进程间切换时间短。
2)通信机制方便
详细请见:http://www.cnblogs.com/chenyadong/archive/2011/10/25/2223610.html
"进程——资源分配的最小单位,线程——程序执行的最小单位"
二、pthread_join函数的作用
pthread_join:使一个线程等待另一个线程结束。
代码中如果没有pthread_join,主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待,直到等待的线程结束自己才结束,使创建的线程有机会执行。
详细请见:转载自http://blog.youkuaiyun.com/jxxfqyy/article/details/4084193