码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-03-20 19:46:30      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:cpu   import   roc   tar   thread   操作   需要   多进程   数据共享   

# 多线程和多进程

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

  线程:一个进程由至少一个线程组成,线程是进程的执行单元,也是操作系统分配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第四周之多线程和多进程

标签:cpu   import   roc   tar   thread   操作   需要   多进程   数据共享   

原文地址:https://www.cnblogs.com/zl666/p/8611505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!