首页 > 编程语言 > 详细

多线程与多进程

时间:2020-01-08 17:01:39      阅读:77      评论:0      收藏:0      [点我收藏+]

当我们需要同时执行多个任务的时候,可以采用多线程或者多进程的架构:

如果是IO密集型任务,可以采用多线程,更好

如果是计算密集型任务,最好采用多进程

以下是python开启多进程与多线程的两种方式:

多进程方式1:

from multiprocessing import  Process
import time
#from threading import Thread ###这个是导入处理线程的模块
###这两个模块 一个处理线程 一个处理进程 用法是一模一样的 只需要学会一个 另一个就很好掌握了

def task1 ():
for i in range(10):
print(‘%d 子进程1 is running‘ % i)
time.sleep(1)

def task2():
for i in range(10):
print("%d 子进程2 is running also " % i )
time.sleep(1)

# 在windonws 操作系统下面 ,开启子进程的操作必须写到 __main__ 下面去
if __name__ == ‘__main__‘:
# 开启了进程后如果调用的函数需要传参,可以用元组 位置参数的方式传
# 也可以用字典 关键字参数的形式进行传
obj1 = Process(target=task1)
obj1.start()

obj2 = Process(target=task2)
obj2.start()

 

多进程方式2:

# #开启子进程的方式2
# ##定义一个类继承原来的Process
from multiprocessing import Process
import time

class Myprocess(Process):
def __init__(self):
super().__init__()

def run(self):
for i in range(10):
print(‘%d 子进程1 is running‘ % i)
time.sleep(1)

if __name__ == ‘__main__‘:
obj = Myprocess()
obj.start()
print(‘主程序‘)




多线程方式1:
from threading import Thread
import time

def task1():
for i in range(10):
print(‘%d 线程1 is running‘ % i)
time.sleep(1)

def task2():
for i in range(10):
print(‘%d 线程2 is running‘ % i)
time.sleep(1)


t1 = Thread(target=task1)
t2 = Thread(target=task2)
t1.start()
t2.start()

多线程方式2

# 第二种方式
from threading import Thread
import time
class MyThread(Thread):
def __init__(self,name):
super().__init__()
self.name = name
def run(self):
for i in range(10):
print(‘%s 子线程1 is running‘ % self.name)
time.sleep(1)
t1 = MyThread(‘jason‘)
t1.start()

t2 = MyThread(‘owen‘)
t2.start()


多线程与多进程

原文:https://www.cnblogs.com/1832921tongjieducn/p/12167323.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!