linux下C语言编程线程有什么好处呢

我的理解就是一个线程代表一个函数,既然是一个函数就直接写个函数呗,干啥非给弄成线程呢

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:

线程的划分尺度小于进程,使得多线程程序的并发性搞。

另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。Unix操作系统中完成的几乎所有用户管理和资源分配等工作都是通过操作系统对应用程序进程的控制来实现的。

一般你运行一个应用程序,就生成了一个进程, 这个进程拥有自己的内存空间,

这个进程还可以内部生成多个线程, 这些线程之间共用一个进程的内存空存空间,所以线程之间共享内存是很容易做到的,多线程协作比多进程协作快一些,而且安全.

在windows跟unix上面,进程,线程的实现方法都是不一样的.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-14
线程
可以用pthread_kill函数
传递信号SIGSTOP挂起
传递SIGCONT 恢复

进程
调用系统的stop挂起
或者用kill -stop 挂起
类似的 用SIGCONT 恢复。
第2个回答  2014-04-03
子函数只是在主函数里面顺序进行的,但是线程是并发进行的。当两个线程需要使用同一个资源时还需要设置互斥信号灯,防止两个线程对资源的访问发生冲突。

以上是一个方面,另一个方面是多线程比较结合实际。不知道你们做过火车的购票仿真没有,当时我们做过,一次用线程实现的,一次用进程实现的。其目的就是使多个操作看起来像是并发的在执行(实际上CPU是不会同时做多个工作的)追问

线程的好处明白了 可以并行 那进程的好处呢 我理解的进程就是包括多个线程的程序

追答

你理解错了,一个进程是可以包含多个线程,但是不一定是包含了多个线程,就像一个函数可以有多少个子函数一样。

实际上刚才举的例更适合的是进程。一台主机一个进程,多台主机同时购票就是多进程访问同一个资源的问题。在单机上实现多进程访问指定资源的话都是用fork克隆父进程得到两个相同的进程。这一块的话有一些共用内存的函数,你可以上网查阅一下资料,我就不说多了。

额……不知道我讲清楚了没

本回答被提问者采纳
相似回答