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

  • 相关阅读:
    SQL CREATE TABLE 语句
    SQL CREATE DATABASE 语句
    SQL INSERT INTO SELECT 语句
    SQL SELECT INTO 语句
    Why is chkconfig no longer available in Ubuntu?
    drag-html
    js利用offsetWidth和clientWidth来计算滚动条的宽度
    procomm plus
    很多shell命令后面的单横杠和双横杠,原来这个意思
    angular md-toast 颜色
  • 原文地址:https://www.cnblogs.com/51testing/p/7928531.html
Copyright © 2011-2022 走看看