多线程与进程
进程(Process)
是计算机中的程序关于某数据集合上的一次运动活动,是系统进行资源分配
和调度的基本单位,是操作系统结构的基础。
线程(Thread)
有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最
小单位。线程是进程中的一个实体,是被系统独立调度和分配的基本单位,
一个进程可以包含多个线程,但是线程不能包含多个进程。线程自己不拥有
系统资源,在单个程序中同时运行多个线程完成不同的工作,称为多线程。
线程与进程的区别
线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,
而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计算器
为其执行上下文。
单线程实战
from time import ctime,sleep
def talk():
print("start talk :%r"%ctime())
sleep(2)
def write():
print("start write:%r"%ctime())
sleep(3)
if __name__ == '__main__' :
talk()
write()
print("All end !%r" %ctime())
多线程实战
# -*- coding: utf-8 -*-
from time import sleep,ctime
import threading
# 定义说和写
def talk(content,loop):
for i in range(loop):
print("start talk:%s %s"%(content,ctime()))
sleep(2)
def write(content,loop):
for i in range(loop):
print("start write:%s %s"%(content,ctime()))
sleep(3)
# 定义和加载说和写的线程
threads = []
t1 = threading.Thread(target=talk,args=("hello",2))
threads.append(t1)
t2 = threading.Thread(target=write,args=("人生苦短,我用python!",2))
threads.append(t2)
# 执行多线程
if __name__ == '__main__':
for t in threads:
t.start()
for t in threads:
t.join()
print("线程全部执行完成!%s"%ctime())
多进程实战
# -*- coding: utf-8 -*-
from time import ctime,sleep
# 导入multiprocessing进程模块
import multiprocessing
# 定义两个方法 说和写
def talk(content,loop):
for i in range(loop):
print("Tlak: %s %s"%(content,ctime))
sleep(2)
def write(content, loop):
for i in range (loop):
print ("write: %s %s" % (content, ctime))
sleep (3)
# 定义两个进程
process = []
p1 = multiprocessing.Process(target=talk,args=("hello",2))
process.append(p1)
p2 = multiprocessing.Process(target=write,args=("人生苦短,我用python",2))
process.append(p2)
# 调用进程
if __name__ == "__main":
for p in process:
p.start()
for p in process:
p.join()
print("调用进程结束 %s"%ctime())
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100699.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...