网络编程——进程和线程

程序和进程

 

程序和进程的区别就在于:

        程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。

       在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。就是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。

 

进程和线程

 

进程和线程算是操作系统内两个很基本、很重要的概念:

进程是操作系统中进行保护和资源分配的基本单位,操作系统分配资源以进程为基本单位。而线程是进程的组成部分,它代表了一条顺序的执行流。

 

系统中的进程线程模型是这样的:

 

线程与进程的区别可以归纳为以下4点:

  1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

  2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

  3)调度和切换:线程上下文切换比进程上下文切换要快得多。

  4)在多线程操作系统中,进程不是一个可执行的实体。

 

线程和进程的关系:

1、线程 - 轻量级(轻型)进程,比进程的开销小很多

2、线程是进程的一部分,线程是属于进程

3、一个线程必须依赖进程存在,一个进程之内至少有一条线程

4、进程中默认存在的线程 主线程,也可以在一个进程中开启多个子线程来完成更多的事情

 

进程是计算机中最小的 资源分配单位

线程是计算机中能被CPU调度的最小单位,计算机中最小的执行单位

 

多个进程之间的多条线程可不可以利用多核:理论上可以的,但是cpython下GIL锁的存在,同一时刻只有一个线程执行

同一个进程中的多条线程可不可以利用多核:可以利用多核,进程数跟主机的核心数一致

 

正常的进程和线程之间的区别

# 进程 : 数据隔离\开销大

# 线程 : 数据共享\开销小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值