C语言:进程vs线程,如何选择?
来源:互联网 发布:前端javascript爬虫 编辑:程序博客网 时间:2024/05/20 18:45
进程vs线程,如何选择?
我们编写程序,到底是采用多线程还是多进程?这里是有区别的,采用不同的机制能够获得的效率也不一样。如何选择适合我们自己的程序的机制呢?下面是一些常见的选择的看法,不过也只是提供给大家参考参考,具体设计的时候还是要自己处理。
¨ 一个程序里面的所有的线程都在同一个运行空间中执行。而一个程序的子进程则是运行在另外的执行空间中的,这里是通过调用了exec函数来实现的。
¨ 同一个进程中的某个线程的故障可以影响其它的线程,因为所有的线程共享同一个虚拟内存空间以及其他资源。例如,某个线程对没有初始化的指针进行写操作,就可能影响其它的线程。而一个出了问题的进程是不会影响其它的进程的,因为它们分别在不同的进程空间进行自己的操作。
¨ 创建新的进程需要进行内存的拷贝操作,这就额外的增加了系统负担,而线程则不需要这个拷贝过程。不过由于现在的操作系统的实现是仅仅当内存需要改变的时候才拷贝改动的部分,所以这里的影响相对还是比较小的。
¨ 线程通常用在某些需要比较好的同步操作的场合。例如,某个问题可以分解为多个几乎对等同步处理的任务的话,则是用线程是很好的选择。进程则适合应用在不需要严格的同步的场合。
¨ 线程之间共享数据是很方便的,因为不同的线程本来就是共享同样的存储空间。(然而这里就要非常仔细的处理竞争的情况。)而不同进程之间共享数据则需要使用一些ipc机制,例如管道、共享内存、套接字等等。
- C语言:进程vs线程,如何选择?
- 进程vs线程,如何选择?
- c语言如何中止线程
- C语言笔记(进程,线程)
- C语言进程与线程实例
- 进程vs线程
- 进程VS线程
- linux 进程 VS 线程
- 进程 vs 线程
- 进程 vs. 线程
- 进程 vs. 线程
- 进程VS.线程
- 进程 vs. 线程
- 进程 vs. 线程
- 进程 vs. 线程
- 进程 vs 线程
- Linux 进程 vs 线程
- 进程.vs 线程.
- JavaScript网页特效5则
- JavaScript开发工具列表
- linux驱动学习(四) linux字符设备驱动 cdev
- ext4分区中恢复被删除的文件
- java集合总结(终极版)
- C语言:进程vs线程,如何选择?
- 数据结构-栈
- 在Struts 2中使用JSON Ajax支持
- Oracle中设置自增字段
- 职场中必需修炼的七项意识
- Java实现串口通信的小例子
- Visual Studio 2008 安装失败(“Web 创作组件”无法安装)解决方法
- (Effective C++)第一章 让自己习惯C++(View Yourself to C++)
- 安装 VS2008 HRESULT -2147023293 失败解决方法