程序、进程和线程
指令按照既定的逻辑控制计算机运行,程序是一组指令及参数的集合。
进程则是运行着的程序。
线程是进程中共享进程资源的一个执行单位。
程序和进程的区别:
程序作为一个静态文件存储在计算机系统的硬盘等存储空间中。
进程则是处于动态条件下由操作系统维护的资源管理实体。可以从以下几个方面进行区别:
进程是动态的,而程序是静态的。
进程有生命周期,而程序是指令的集合,本身无"运动"的含义。
一个进程只能对应一个程序,一个程序可以对应多个进程。进程和程序的关系就像戏剧和剧本之间的关系。
进程和线程
操作系统是软件系统的运行环境,操作系统和性能最相关的就是进程和线程。进程和线程都是为了进一步提升单机性能,主要是CPU和内存利用效率。
进程
进程是运行着的程序,用来对应一个任务。每个进程都有自己独立的内存空间,进程间互不相关。
为了达成多进程共同运行,把CPU的时间分成很多片段,每个时间片段只能执行某一个进程的指令。
进程之间可以通信,进程间通信方式包括管道、消息队列、信号量、内存共享等。
进程是操作系统分配资源的最小单位。
线程
很多进程内部的子任务并不严格要求按照时间顺序来执行,也需要并行处理。为了解决这个问题来,人们发明了线程用来进一步提升单机性能。
线程是进程的一部分,是进程内部的子任务,一个进程最少有一个线程,这些子任务共享同一份进程数据,使用互斥锁等机制保证数据的正确性。
线程是操作系统调度的最小单位。