线程
线程的内容(类比)
操作系统————工厂
进程————车间
线程————车间里的流水线
cpu————流水线运行所必需的电源
线程和进程的比较
两种不是一个概念,一般来说是无法比较的
功能上
进程
用来把资源集中到一起进程只是一个资源单位,或者说资源集合线程
cpu的执行单位(最小的)
运行程序
进程
申请内存空间将程序放入解释器, 在放入该内存空间线程
运行代码
过程描述
进程
资源的申请与销毁的过程线程
单指代码的执行过程
资源
进程
彼此隔离竞争关系线程
资源共享合作关系
创建速度
进程
慢需要向操作系统申请空间线程
快告诉操作系统要新的线程就像在这里开了个分岔口,一条路变成两条路
开启线程的两种方式
方式一
使用函数
方式二
使用类
线程vs进程
速度
from multiprocessing import Process
from threading import Thread
import time
def test():
pass
if __name__ == '__main__':
p = Process(target=test)
t = Thread(target=test)
start1 = time.time()
p.start()
p.join()
end1 = time.time()
start2 = time.time()
t.start()
t.join()
end2 = time.time()
print(end1 - start1)
print(end2 - start2)
线程要远快于进程
资源共享
from multiprocessing import Process
from threading import Thread
import time
x = 1
def test():
global x
x= 100
print("我完成了")
if __name__ == '__main__':
# 查看进程是否可修改数据
p = Process(target=test)
p.start()
time.sleep(2)
print(x)
# 查看线程是否可修改数据
# t = Thread(target=test)
# t.start()
#
# time.sleep(1)
# print(x)
线程共享资源进程间彼此隔离
XMind: ZEN - Trial Version
转载于:https://www.cnblogs.com/marklijian/p/11575112.html