python之单线程、多线程、多进程

一、基本概念
进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。
线程(thread) 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
简单总结:
进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——资源分配的最小单位。
线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位。
 
二、 单线程
程序执行时,所走的程序路劲按照联连续顺序排下去,前面的处理完后,后面的才会执行
举个栗子
#单线程
 1 from time import sleep,ctime
 2 def talk():
 3 print("stark talk %r" %ctime())
 4 sleep(2)
 5 def write():
 6 print("stark write %r" %ctime())
 7 sleep(3)
 8 talk()
 9 write()
10 print("all and! at %r" %ctime())
查看结果-顺序执行

 

 

三、多线程

 1 from time import sleep,ctime
 2 import threading
 3 
 4 def talk(content,loop):
 5 for i in range(loop):
 6 print("stark talk %s %s" %(content,ctime()))
 7 sleep(3)
 8 
 9 def write(content,loop):
10 for i in range(loop):
11 print("stark write %s %s" %(content,ctime()))
12 sleep(5)
13 #定义和加载说和写的线程
14 threads=[]
15 t1=threading.Thread(target=talk,args=('hello world',2))
16 threads.append(t1)
17 t2=threading.Thread(target=write,args=('life is short you need python',2))
18 threads.append(t2)
19 #执行多线程
20 for t in threads:
21 t.start()
22 for t in threads:
23 #线程守护
24 t.join()
25 print("all threads end! at %r" %ctime())
查看执行结果-读写并发
 
 
四、多进程
 1 from time import sleep,ctime
 2 import multiprocessing
 3 
 4 def talk(content,loop):
 5 for i in range(loop):
 6 print("stark talk %s %s" %(content,ctime()))
 7 sleep(2)
 8  
 9 def write(content,loop):
10 for i in range(loop):
11 print("stark write %s %s" %(content,ctime()))
12 sleep(3)
13 #定义和加载说和写的进程
14 process=[]
15 p1=multiprocessing.Process(target=talk,args=('hello world',2))
16 process.append(p1)
17 p2=multiprocessing.Process(target=write,args=('life is short you need python',2))
18 process.append(p2)
19 #调用进程
20 if __name__=='__main__':
21 for t in process:
22 t.start()
23 for t in process:
24 #进程守护
25 t.join()
26 print("all process end! at %r" %ctime())
查看执行结果-读写并发

 

 

 

 

posted @ 2020-05-13 00:41  Mrwhite86  阅读(726)  评论(0编辑  收藏  举报