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 进程和线程的主要内容,如果未能解决你的问题,请参考以下文章

[Python3] 043 多线程 简介

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

什么是多线程,多进程?

线程学习知识点总结

多线程编程

多个请求是多线程吗