zoukankan      html  css  js  c++  java
  • python3.5.3rc1学习七:多线程

    import threading

    def exampleFun():
    #打印当前激活的线程数量
    print(threading.active_count)

    #查看上面激活的线程是哪几个
    print(threading.enumerate())

    exampleFun()

    #创建线程

    def exampleFuc():
    added_thread = threading.Thread(target=thread_job)
    added_thread.start()

    def thread_job():
    print("这是一个添加的线程,序列号是%s" % threading.current_thread())

    exampleFuc()

    print("--------------------")

    import time

    def thread1_job():
    print("T1开始 ")
    for i in range(10):
    time.sleep(0.5)
    print("T1 结束 ")

    def exampleFunc():
    thread1 = threading.Thread(target=thread1_job,name="T1")
    thread1.start()
    thread1.join()
    print("所有任务都完成了。 ")

    exampleFunc()

    print("--------------------")
    from queue import Queue

    def job(data,q):
    for i in range(len(data)):
    data[i] = data[i]**2
    # put方法把结果放入队列,这里不能使用return语句
    q.put(data)


    def exampleFunction():
    # 新建一个队列
    q = Queue()
    # 新建一个空的多线程列表
    threads = []
    # 给出一个数据,到job去计算
    data = [[1,2,3],[2,3,4],[3,4,5],[4,5,6]]
    # for 循环创建一个多线程,大小根据data[]的大小

    for x in range(4):
    t = threading.Thread(target = job,args=(data[x],q))
    #启动线程
    t.start()
    # 把创建线程添加到多线程threads这个列表
    threads.append(t)

    for each_thread in threads:
    each_thread.join()
    # 定义一个计算结果列表
    results = []

    # 把结果分别从队列取出,这里需要取4次
    for y in range(4):
    # q.get()就是从队列取出结果


    results.append(q.get())
    # 等所以事情完成,就打印结果列表
    print(results)
    exampleFunction()

  • 相关阅读:
    #最小生成树,Trie#CF888G Xor-MST
    #Tarjan#洛谷 5676 [GZOI2017]小z玩游戏
    #区间dp#CF1114D Flood Fill
    #构造,二分#[AGC006B] [AGC006D] Median Pyramid
    #0/1分数规划#AT1807 食塩水
    #笛卡尔树#洛谷 3793 由乃救爷爷
    #同余最短路#洛谷 2371 [国家集训队]墨墨的等式
    awk命令使用
    k8s快速删除所有退出的pod
    ratticdb密码管理工具安装使用
  • 原文地址:https://www.cnblogs.com/51testing/p/7928531.html
Copyright © 2011-2022 走看看