实现python说话的多历程与多线程
对比单历程、多历程、多线程的利用案例。
一、先实现单历程的案例:
1、导入threading和time库;
如:
from time import ctime,sleep
import threading
2、界说两个函数:
如:
def talk(content,loop):
for i in range(loop):
print("Start talk %s %r" %(content,ctime()))
sleep(2)
def write(content,loop):
for i in range(loop):
print("Start write %s %r" %(content,ctime()))
sleep(6)
3、运行本家儿函数:
if __name__=='__main__':
talk("Hello world",3)
write("Bye Bye",3)
print("All end 2222:%r" %ctime())
4、全数代码为:
from time import ctime,sleep
import threading
def talk(content,loop):
for i in range(loop):
print("Start talk %s %r" %(content,ctime()))
sleep(2)
def write(content,loop):
for i in range(loop):
print("Start write %s %r" %(content,ctime()))
sleep(6)
if __name__=='__main__':
talk("Hello world",3)
write("Bye Bye",3)
print("All end 2222:%r" %ctime())
5、运行成果如下图所示:
二、接下来,编写多历程的案例:
6、函数同单历程中的函数,此中需要界说历程对象;
如:
threads=[]
t1=threading.Thread(target=talk,args=('Hello world',3))
threads.append(t1)
t2=threading.Thread(target=write,args=('Bye Bye',3))
threads.append(t2)
7、运行本家儿函数:
if __name__=='__main__':
for t in threads:
t.start()
for t in threads:
t.join()
print("All end 2222:%r" %ctime())
8、全数代码为:
from time import ctime,sleep
import threading
def talk(content,loop):
for i in range(loop):
print("Start talk %s %r" %(content,ctime()))
sleep(2)
def write(content,loop):
for i in range(loop):
print("Start write %s %r" %(content,ctime()))
sleep(6)
threads=[]
t1=threading.Thread(target=talk,args=('Hello world',3))
threads.append(t1)
t2=threading.Thread(target=write,args=('Bye Bye',3))
threads.append(t2)
if __name__=='__main__':
for t in threads:
t.start()
for t in threads:
t.join()
print("All end 2222:%r" %ctime())
如下图所示:
9、运行代码,成果如下图所示:
三、接下来,编写多线程的案例:
10、函数同单历程中的函数,此中需要界说历程对象;
如:
processes=[]
p1 = multiprocessing.Process(target=talk, args=('Hello world',3))
processes.append(p1)
p2=multiprocessing.Process(target=write,args=('Bye',3))
processes.append(p2)
11、界说本家儿函数为:
for p in processes:
p.start()
for p in processes:
p.join()
print("All Processes are Run %s" %ctime())
12、全数代码为:
from time import ctime,sleep
import multiprocessing
import threading
def talk(content,loop):
for i in range(loop):
print("Start talk %s %r" %(content,ctime()))
sleep(2)
def write(content,loop):
for i in range(loop):
print("Start write %s %r" %(content,ctime()))
sleep(6)
processes=[]
p1 = multiprocessing.Process(target=talk, args=('Hello world',3))
processes.append(p1)
p2=multiprocessing.Process(target=write,args=('Bye',3))
processes.append(p2)
if __name__=='__main__':
for p in processes:
p.start()
for p in processes:
p.join()
print("All Processes are Run %s" %ctime())
13、运行成果如下图所示:
综上所述,单历程、多历程、多线程的执行成果,本家儿如果表现在执行的时候点的差别。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!