码迷,mamicode.com
首页 > 编程语言 > 详细

Python线程池+进城池

时间:2019-06-30 14:17:54      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:requests   sync   list   sleep   pid   mutex   进程池   import   print   

#coding=utf-8
import multiprocessing
import threadpool
import threading
import time
import os
import random

mutex = threading.Lock()


def write_to_file(file_name, text):
    mutex.acquire()
    a = open(file_name, ‘a‘)
    a.write(text + "\n")
    a.close()
    mutex.release()



def test1(msg):
    t_start = time.time()
    print("%s开始执行,进程号为%d" % (msg, os.getpid()))
    time.sleep(random.random() * 2)
    t_stop = time.time()
    print("%s执行完成,耗时%.2f" % (msg, t_stop - t_start))




def multithread(parm_list,threading_num):
    #这里存放的是放入线程池的参数
    #放入的内容是列表
    #调用函数的参数和列表的内容顺序是一样的
    for i in parm_list:
        password_list.append((i, None))

    pool = threadpool.ThreadPool(threading_num)
    requests_a = threadpool.makeRequests(req, password_list)
    [pool.putRequest(req) for req in requests_a]
    pool.wait()


def multiprocess():
    po = multiprocessing.Pool(3)
    for i in range(0, 10):
        # Pool().apply_async(要调用的目标,(传递给目标的参数元祖,))
        # 每次循环将会用空闲出来的子进程去调用目标
        # for j in range()
        po.apply_async(test1, (i,))

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

    po.close()  # 关闭进程池,关闭后po不再接收新的请求
    po.join()  # 等待po中所有子进程执行完成,必须放在close语句之后

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


def main():
    pass

 

Python线程池+进城池

标签:requests   sync   list   sleep   pid   mutex   进程池   import   print   

原文地址:https://www.cnblogs.com/yakoazz/p/11109434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!