分别解释一下程序,进程和线程的概念和区别?
程序 是计算机指令的集合它,以文件的形式存储在磁盘上。
进程是一个程序在其 自身的地址空间中的一次执行活动。
进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源,而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占系统的运行资源。
线程:进程中的一个单一的连续控制流程。一个进程可以拥有多个线程。线程又称轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。
python线程与进程的区别?
1、运行方式不同
进程不能单独执行,它只是资源的集合。
进程要操作CPU,必须要先创建一个线程。
所有在同一个进程里的线程,是同享同一块进程所占的内存空间。
2、关系
进程中第一个线程是主线程,主线程可以创建其他线程;其他线程也可以创建线程;线程之间是平等的。
进程有父进程和子进程,独立的内存空间,唯一的标识符:pid。
3、速度
启动线程比启动进程快。
运行线程和运行进程速度上是一样的,没有可比性。
线程共享内存空间,进程的内存是独立的。
4、创建
父进程生成子进程,相当于复制一份内存空间,进程之间不能直接访问
创建新线程很简单,创建新进程需要对父进程进行一次复制。
一个线程可以控制和操作同级线程里的其他线程,但是进程只能操作子进程。
5、交互
同一个进程里的线程之间可以直接访问。两个进程想通信必须通过一个中间代理来实现。
关于线程与进程的论述正确的有?
A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。 B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C)Java多线程的运行与平台相关。 D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。
进程和线程通信方式有什么不同?
线程的目的就是实现多个程序的并发运行。在多线程环境中,进程作为资源的独立单位,线程是进程的一个实体,是被进程调度的基本单位。进程间通信必须使用操作系统提供的进程通讯机制,而同一进程的各线程可以直接读写进程数据段进行通信淡然同样需要同步和互斥手段的辅助。以保证数据的一致性。另外同一进程的线程切换比进程切换快的多。线程包括内核级线程KTL 用户级线程UTL 混合式线程