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

Posted zl666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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=(??,))
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():
    patten = Patten(??, 10000)
    patten2 = Patten(??, 10000)
    patten3 = Patten(??, 10000)
    patten4 = Patten(ヾ(?ω?`)o, 10000)
    patten5 = Patten(??, 10000)
    total = patten.count + patten2.count + patten3.count + patten4.count + patten5.count
    print(total)


if __name__ == __main__:
    main()

线程

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

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

 

























以上是关于Python第四周之多线程和多进程的主要内容,如果未能解决你的问题,请参考以下文章

python之多线程

python中的多线程和多进程编程

Python爬虫进阶五之多线程的用法

Python多线程和多进程爬虫

什么是多线程,多进程?

python基础之多线程