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()

  • 相关阅读:
    UIAutomation识别UI元素
    pycharm调试bug Process finished with exit code 1073740791 (0xC0000409)
    adb常用命令
    win10 安装Pytorch GPU版+CUDA+cuDNN
    AD 端口相关
    sqlserver数据库排序规则
    sqlserver数据库备份的存储过程
    专有软件不是唯一!试试54款开源服务器软件[转]
    AD管理维护与排错工具
    LDAP over SSL (LDAPS) Certificate
  • 原文地址:https://www.cnblogs.com/51testing/p/7928531.html
Copyright © 2011-2022 走看看