python线程与进程学习手记
admin
2023-03-27 08:41:38
0

多线程 vs 多进程

  • 程序:一堆代码以文本形式存入一个文档
  • 进程:程序运行的一个状态
    • 包含地址空间,内存,数据栈等
    • 每个进程由自己完成独立的运行环境,多进程共享数据是一个问题
  • 线程
    • 一个进程的独立运行片段,一个进程可以有多个线程
    • 轻量化的进程
    • 一个进程的多个线程间共享数据和上下文运行环境
    • 共享互斥问题
  • 全局解释锁(GIL)
    • python代码的执行是由python虚拟机进行控制
    • 在主循环中有一个控制线程在执行

threading的使用

  • 直接利用threading.Thread生成Thread示例
    1. t = threading.Thread(target=xxx, args=(xxx,))
    2. t.start():启动多线程
    3. t.join(): 等待多线程执行完成
  • 案例01:

import threading
import time

def loop01(in01):
print("start loop01 at : {0}".format(time.ctime()))
print("loop01参数:{0}".format(in01))
time.sleep(4)
print("end loop01 at : {0}".format(time.ctime()))

def loop02(in01, in02):
print('start loop02 at : {0}'.format(time.ctime()))
print("loop02参数,第一个参数{0},第二个参数{1}".format(in01,in02))
time.sleep(2)
print("end loop02 at : {0}".format(time.ctime()))

if name == 'main':
print("Starting at : {0}".format(time.ctime()))
t1 = threading.Thread(target=loop01,args=("loop01参数",))
t2 = threading.Thread(target=loop02,args=("loop02参数1","loop02参数2"))
t1.start()
t2.start()
t1.join()
t2.join()
print("All done at {0}".format(time.ctime()))
while True:
time.sleep(10)

相关内容

热门资讯

古尔曼:苹果macOS 27将... IT之家 5 月 10 日消息,据彭博社记者马克・古尔曼消息,苹果正准备为下一版 macOS 推出“...
一觉醒来,美伊又谈崩了 (一)一觉醒来,又谈崩了。世间外交,我们看到的,从来没有轻易的握手言和,更多是互不退让的底线博弈。最...
伊媒:伊朗已拒绝美国提出的方案 新华社德黑兰5月11日电 据伊朗新闻电视台10日晚报道,伊朗已拒绝美国提出的方案,认为同意该方案将意...
目标2028年发射,美国Sky... 来源:市场资讯 (来源:IT之家) IT之家 5 月 9 日消息,科技媒体 Ars Technica...
英伟达新技术“翻车”? 今年3月,英伟达发布新技术DLSS 5,其主要目标是通过一系列技术提升游戏的视觉保真度,使场景呈现更...
特朗普称伊朗的回复完全不可接受... 伊朗对美国的结束战争方案做出回应,美国总统特朗普5月10日表示十分不满。美媒爆料双方存在的分歧。《华...
北京-东盟科技产业推介洽谈会举... 5月8日下午,由北京市贸促会主办的第二十八届科博会北京-东盟科技产业推介洽谈会在国家会议中心二期举办...
“氢能心脏”破解无人机续航难题 (来源:天津日报) 转自:天津日报 据新华社大连5月10日电(记者 蔡拥军 张博群)记者10日从中...
原创 4... 近日,根据多家科技媒体的消息,国内手机评测机构安兔兔公布了2026年4月份安卓手机好评榜TOP10。...
伊朗提议美方在30天内撤销对伊... 据伊朗方面10日消息,知情人士表示,伊朗在其向美方的提议中,要求美国财政部外国资产控制办公室在30天...