进程和线程的区别

来源:互联网 发布:php抓取网页数据效果 编辑:程序博客网 时间:2024/04/19 21:00

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

简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

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

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

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

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

超线程加快了 Linux 的速度

为什么要引入进程:进程可以提高系统的并发性,提高CPU的使用率,从而提高程序的性能.在以前单道操作系统中,一次只执行一个程序,这样管起来简单,但执行效率很低,资源得不到充分的利用,所以,后来多道操作系统出现了,由于多道操作系统一次并发执行很多程序,但管理起来非常麻烦,就这样,进程就被提出来,进程是一个程序动态执行表现,而且进程里包含了程序的资源,并管理程序怎么去使用资源.

进程是在一个程序运行时建立起来的,进程是动态的,而程序是静态的,可以说进程是程序的一种动态表现形式.

进程分为用户进程和系统进程,可以按字面理解,系统进程就是为了完成系统本身功能,而建立的进程,用户进程为执行特定的用户程序而建立起来的进程.

进程的管理和控制信息都放在进程控制模块PCB(Process Control Block),

为什么要引入线程:进程与进程之间的通信是十分慢的,因为进程管理分配很多资源,所以转换起来很慢,就这样,线程产生了,他是比进程更小的单位,一个进程中只要有一个或多个线程,每个线程之间的通信相对进程而言,则快了很多,因为线程只涉及到CPU的资源分配.一个进程里的线程是可以相互通信的.但不同进程之间的线程是不能相互通信的.

线程在程序中的作用:提高程序的并发性,一个程序如果只有一个线程的话,那么整个程序只能顺序执行,如果程序中有两个方法,想同时执行(比如银行取款,很多人同时取),这样,一个线程是解决不了的,因此引入了多线程,没个人调用取钱的方法都放到不同的线程中,这样就可以虚拟的同时取款了,其实是CPU时间轮片的原因,因为CPU速度非常快,所以给人印象上是同时进行的.线程还有一个优点就是,提高程序的CPU利用率,从而提高程序的运行速度.

原创粉丝点击