
进程是指在系统中运行的一个应用程序的实例,例如记事本程序(Notepad)的运行会创建一个包含其代码及其所需调用动态链接库的进程。每个进程具有的地址空间,其内部数据彼此。进程间通过协议共享内存块。
线程则是系统分配处理器时间资源的基本单元,是进程内的执行单元。操作系统调度单元是线程。一个进程至少包括一个线程,通常称为主线程。进程通过创建附加线程来实现多任务,即基于多线程的多任务。
进程与线程的区别在于,进程是程序实例,而线程是程序实例中的执行序列。进程拥有的地址空间,而线程共享进程的地址空间。
以沙箱为例,进程就像沙箱,线程是其中的孩子。沙箱封闭,线程间相互影响,但不会影响其他沙箱中的其他孩子。进程是保护起来的沙箱,未经许可,无人可以进出。
线程运行而进程不运行。两个进程彼此获得专用数据或内存的唯一途径就是通过协议来共享内存块。任务管理器中的进程选项卡显示了一系列进程,进程通过进程ID进行区分,第三列显示线程占用的CPU时间百分比,第四列显示CPU时间。
线程是给定的指令序列、栈和共享数据的集合。每个线程有自己的堆栈和程序计数器。线程可以处于初始态、可运行态、阻塞态或退出态。
线程的优先级可以设定,高优先级的线程可以优先执行。应用程序可以使用线程中的方法setPriority(int)来设置线程的优先级。
进程和线程的区别在于,进程是程序实例,具有的地址空间,而线程是进程内的执行单元,共享进程的地址空间。线程的运行由进程管理,进程的运行则由操作系统调度。