Python多线程&多进程&线程池&进程池

线程池

from threadpool import ThreadPool, makeRequests
import time
def x(many):
    for x in range(1, many):
        print(x)
        time.sleep(1)
p = ThreadPool(5)
requests = makeRequests(x, [5, 6, 10, 2])
for t in requests:
    p.putRequest(t, )
p.poll()  # 等待所有线程执行完成才能执行主线程
print('主线程')

多线程

from threading import Thread
import time


def x(many):
    for x in range(1, many):
        print(x)
        time.sleep(1)
thread_list = []
for i in range(1, 7):
    t = Thread(target=x, args=(i, ))
    thread_list.append(t)
for t in thread_list:
    t.setDaemon(True)  # 主线程执行完成后不管改线程是否完成都退出
    t.start()
    # t.join()  # 主线承等待该线程执行完成后才执行
print('主线程1')
time.sleep(1)
print('主线程2')

进程池

from multiprocessing.pool import Pool
import time

def x(many):
    for x in range(1, many):
        print("子进程%s - %s" % (many, x))
        time.sleep(1)
p = Pool(processes=5,)
for i in range(1, 20):
    p.apply_async(func=x, args=(i, ))
print('主进程')
p.close()
p.join()  # 等待所有子进程完成后主进程才能执行
print('主进程1')
time.sleep(3)
print('主进程2')

多进程

from multiprocessing import Process
import time
def x(many):
    for x in range(1, many):
        print("子进程%s - %s" % (many, x))
        time.sleep(1)
process_list = []
for i in range(1, 6):
    p = Process(target=x, args=(i,))
    process_list.append(p)
for p in process_list:
    p.daemon = True  # 主进程完成后即关闭该进程
    p.start()
    p.join()  # 主进程等待该进程结束后才执行
print('主进程1')
time.sleep(2)
print('主进程2')

4 thoughts on “Python多线程&多进程&线程池&进程池”

  1. 曾经想一人摆渡于桃花源,不想惊起一滩鸥鹭,却无奈于最后的争渡;曾经想捧一杯梅花酒,举杯邀月,却落幕于觥筹交错的宴会中;曾经想泡浸于一墨纸香,掬一坯净土小栖,却流连于繁世的喧嚣。

  2. 生活,在坎坷中前行生;在忙碌中收获,在悲喜中经历;在痛苦中领悟;在得失中选择;在奋斗中坚定;在平凡中精彩;在知足中快乐 ;在宁静中储蓄;在遗忘中洒脱;在阅历中成长;在历练中坚强;在给予中快乐;在简单中幸福;在错过中珍惜;在经历中懂得。

  3. 原来世界上真的没有什么是永远。一段友情,离开了就淡了。一段爱情,分离了就散了。珍惜现在所拥有的,也许下一秒,就不再属于你的。

  4. 在一个天平上,你得到越多,那么也就势必要承受更多,每一个看似低的起点,都是通往更高峰的必经之路。让自己的心情更平和一点,更豁达一点,对身边的过错淡然,让自己更宽容一点,那么阳光也就常驻。

Leave a Reply

Your email address will not be published. Required fields are marked *