单进程多线程,多进程的选择
3月 23, 2008 – 10:43 下午基本概念:
线程:是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
进程:一个具有独立功能的程序关于某个数据集合的一次运行活动.
当然以上都是来自己教科书上的概念,理解起来十分的抽象。我的理解是线程是比进程小的运行单元,一个进程至少有一个线程运行,一个进程就是一操作系统运行的一次任务。
个人觉得单进程更加适用于做交互,所谓的交互就是程序与程序使用者之间的交流。因为用户只需用一个方法解决问题,总比用好几个步骤解决问题来得方便。比如:写一篇文档,您只需打开一个word,在word 书写你想要的内容,然后关闭word。一切只需word就能解决问题。如果一个用户为了写一个文档,分别进行创建文档,编码文档,保存文档的软件。那么他将会崩溃。
对于庞大的系统来说我多会选择多进程进行后台的管理等工作。因为把一个任务分解成多个进程会使单个进程的逻辑简单,而不容易出错(再聪明的程序员面对复杂的逻辑里也可以出现低级的错误)。多进程会使得错误易于定位,一个进程出现问题,不会对其它进程产生很大的影响。当然这些单进程同样也可以做到,但是要做到这些处理起来会比多进程复杂得多。多进程更便于多语言的协作开发,这一点单进程是很难做到的。
从windows应用程序的编写到linux后台程序的实现,是我从单进程到多进程进行转变诱因.用N个进程跑N个任务会比单个进程完成多个任务让人放心的多。
当然是否那种方式更让人放心还是要取决于问题解决方案的好坏,我倾向于多进程的解决方案,你呢??