Python第四周之多线程和多进程

# 多线程和多进程

  进程:操作系统分配内存的基本单位,进程之间的通信相互隔离,如果要相互交换数据,需要特殊的机制。

  线程:一个进程由至少一个线程组成,线程是进程的执行单元,也是操作系统分配CPU的基本单元。

多线程,是为了多的被CPU所启动。

  优点:

  1.缩短程序的执行时间,提升性能

  2.改善用户的体验。

 

进程

调用方法一: 直接调用 。

  直接创建对象Process,并通过target参数指定线程启动后要执行的任务

 
  
from multiprocessing import Process


count = 0


def running(string):
global count
inner = 0
while count < 100:
print(string, end='', flush=True)
count += 1
inner += 1
print('%s打印了%s' % (string, inner))


def main():
t1 = Process(target=running, args=('?',)) # 注意,这里target 后面跟的函数,没有括号,args= 后面跟的是元组,传入参数
t1.start()
t2 = Process(target=running, args=('',))
t2.start()


if __name__ == '__main__':
main()
 

调用方法二: 定义类来调用 -- 间接(推荐)

  继承Process自定义进程,通过重写run 方法来指定线程启动后执行的任务

from multiprocessing import Process


class Patten(Process):

    def __init__(self, string, count):
        self._string = string
        self._count = count
        super(Patten, self).__init__()

    @property
    def count(self):
        return self._count

    def run(self):
        for _ in range(self._count):
            print(self._string, end='', flush=True)


def main():
    patten1 = Patten('?', 10000)
    patten2 = Patten('?', 10000)
    patten1.start()
   patten1.join()
   patten2.start()
   patten2.join()
total = patten.count + patten2.countprint(total) if __name__ == '__main__': main()

线程

使用方法同进程,只需要把对象换位Thread 就行。和进程的区别如下:

  进程是单独执行,数据不共享,线程是数据共享执行。

 

转载于:https://www.cnblogs.com/zl666/p/8611505.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值