python 进程和线程
Posted python|一路向前
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 进程和线程相关的知识,希望对你有一定的参考价值。
进程:将程序装载到内存并为它分配内存资源才能执行,这种执行程序称为进程,进程是资源的集合。
程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。
优点:允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率
缺点:进程只能在一个时间干一件事,进程在执行的过程中如果阻塞,整个进程就会挂起。
线程:包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
操作CPU,必须先创建线程。
进程与线程的区别:
线程共享内存空间,进程的内存是独立的。
同一进程中的线程可以相互通信,进程间的通讯必须有中间代理。
新线程很容易创建;新进程需要重复父进程。
线程可以对同一进程的线程进行控制和操作;进程只能对子进程行使控制。对主要内容的更改。
比如:有时间间隔的效果:
#conding:utf-8 import threading,time def run(m): print‘take‘,m time.sleep(2) run(‘t1‘) #两结果中间有间隔时间 run(‘t2‘)
多线程并发效果:
import threading,time def run(m): print‘take‘,m time.sleep(2) t1=threading.Thread(target=run,args=(‘t1‘,)) t2=threading.Thread(target=run,args=(‘t2‘,)) t1.start() #结果同时出现 t2.start()
继承式线程调用:
#conding:utf-8 import threading,time class mythread(threading.Thread): def __init__(self,m): super(mythread,self).__init__() self.m=m def run(self): print‘take‘,self.m time.sleep(2) t1=mythread(‘t1‘) t1.start() t2=mythread(‘t2‘) #使用继承式线程调用,无时间间隔 t2.start()
以上是关于python 进程和线程的主要内容,如果未能解决你的问题,请参考以下文章