• 多线程,守护线程,多进程


                                               多线程
    import threading#调用多线程包
    import time
    l =[]
    res_num=[]#多线程是没法获取返回值的,所以只能通过在函数内把返回值添加到list里面
    def num(a,b):
    time.sleep(1)
    c = a+b
    res_num.append(c)#把返回值添加到list,因为多线程是无法获取返回值的

    t =threading.Thread(target=num,args=(1,2))#q启动一个子线程,taeget=函数名,args=这个函数传的参数,是元组类型
    for i in range(10):
    t1 = threading.Thread(target=num, args=(1, 2))#启动10个线程
    l.append(t1)#把线程对象加到列表内
    t1.start()#运行线程
    for u in l:
    u.join()#让主线程等待子线程运行结束后再继续往下走
    print(u)#如果不加join,主线程不管子线程是否运行完都会往下执行
    print('子线程运行结束后,在打印我',res_num)
                                     # 守护线程
    import threading,time
    def haha():
    time.sleep(2)
    print('hahah')
    for i in range(10):
    t = threading.Thread(target=haha)
    t.setDaemon(True)#守护线程,只要主线程运行结束了,不管子线程是否执行完毕,直接结束
    t.start()

    # 多进程 多进程也有和线程一样的join方法等
    from multiprocessing import Process
    def test(i):
    time.sleep(1)
    print(i)
    if __name__ == '__main__':
    for i in range(5):
    p =Process(target=test,args=('aaa',))
    p.start()
  • 相关阅读:
    WinMain函数的修饰符WINAPI的含义
    java字节码指令集简介
    vs2010里面的ipch文件和.sdf文件是什么
    java查看class字节码文件
    从汇编看c++的extern关键字
    highcharts系列教程
    highcharts的文档介绍(英文)
    关于firebug中行号和源文件不一致的问题
    ios中的流状态的定义
    highcharts翻译系列
  • 原文地址:https://www.cnblogs.com/lanxia/p/8005490.html
Copyright © 2020-2023  润新知