多线程 - 关于Python Cookbook中创建线程池代码的一个bug?
黄舟
黄舟 2017-04-18 10:04:12
0
3
338
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(3)
左手右手慢动作

Saya rasa anda betul.

import time
from Queue import Queue
from threading import Thread, activeCount

G_WORKER_NUM = 1
G_COUNTER = 1

def do_something(q):
    q.get()
    global G_COUNTER
    G_COUNTER += 1
    print(G_COUNTER)


def main():
    q = Queue()
    for n in xrange(G_WORKER_NUM):
        t = Thread(target=do_something, args=(q,))
        t.start()

    q.put(('anything',))
    q.put(('anything',))
    q.put(('anything',))


if __name__ == '__main__':
    main()
    time.sleep(2)
    print activeCount()

Output:

Menunjukkan bahawa utas itu sememangnya telah keluar.

黄舟

Mungkin penulis hanya ingin menunjukkan penciptaan kumpulan benang untuk mengehadkan bilangan utas yang boleh dibuka, dan tidak mempertimbangkan projek yang lengkap. Sebagai contoh, benang dalam kumpulan benang mesti boleh digunakan semula dan tidak boleh dibuat dan ditutup dengan kerap; saiz kumpulan benang boleh disesuaikan secara dinamik Apabila terdapat beberapa benang terbiar, sesetengahnya akan ditutup penuh dan tidak mencukupi, sesuai Tambah beberapa utas. Secara khusus, saya fikir jika anda boleh mencari maklumat yang relevan, pasti ada penyelesaiannya.

阿神

Dia tidak menulis dalam utas utamaq.join()

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!