python 之多线程编程(一)

关于进程和线程的描述,这里有一篇比较有意思的类比描述http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
一、什么是进程
进程是程序在一次数据集合上的一次执行过程,每个进程都有自己的地址空间,内存,数据栈及其他记录其运行轨迹的辅助数据。所以一个程序在不同数据集合上的运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。
操作系统管理在其上运行的所有进程,并为这些进程公平地分配时间、进程也可以通过fork和spawn操作来完成其他任务。
不过各个进程有自己地内存空间、数据栈等,所以只能使用进程间通讯(inter process communication,IPC),而不能直接共享信息。常见的进程间通讯方式有信号、信号量、消息队列和共享内存

二、什么是线程
线程也被称为轻量级进程,所有线程运行在同一进程中,共享相同的运行环境。线程是进程中的一个实体,是被系统独立调度和执行的基本单位。

三、进程和线程的区别

  1. 进程是独立的,这表现在内存空间,上下文环境上;线程运行在进程空间内。一般来讲(不使用特殊技术),进程无法突破进程边界存取其他进程内的存储空间;而线程处于进程空间内,所以同一进程所产生的线程共享同一内存空间。
  2. 同一进程中的两段代码不能够同时执行,除非引入线程。
    线程是属于进程的,当进程退出时,该进程产生的所有线程都会被强制退出并清除。
  3. 线程占用的资源要少于进程所占用的资源。
  4. 进程和线程都可以有优先级
  5. 进程间可以通过IPC通信,但线程不可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值