【Python】关于多线程

关于多线程的,朋友帮忙写了一个,但是还不是十分懂,要放假 不想学了,先摆在这里叭

还有一篇文章,写得挺好的,放这里回头看;

http://t.csdn.cn/pZ1hp

from multiprocessing.pool import ThreadPool
import random
import time
def year():
# '''生成年份'''
# 1978为第一代身份证执行年份,now-18直接过滤掉小于18岁出生的年份
    now = time.strftime('%Y') #生成年份
    second = random.randint(1961, 1988)
 # age = int(now)-second
 # print('随机生成的身份证人员年龄为:'+str(age))
    return second
def month():
# '''生成月份'''
    three = random.randint(1, 12)
    if three < 10:
        three = '0' + str(three)
        return three
    else:
        return str(three)
def worker(start, end):
    result = []
    for i in range(start, end):
        y = year()
        m = month()
        d = day()
        ld = getDay(y, m)
        result.append([y, m])
    return result 

def multiprocessing(num):
#     需要分成多少个线程
    thread_num = 10
    results = []
    pool = ThreadPool(processes=thread_num)
    for i in range(thread_num):
        start = i * num // thread_num
        end = (i + 1) * num // thread_num
        if(i == thread_num - 1):
            end = num 
        results.append(pool.apply_async(worker, (start, end)))
    pool.close()
    pool.join()   
    return results
if __name__ == "__main__":
    num = 6000000
    start = time.time()
    results = multiprocessing(num)
#     for res in results:
#         res = res.get()
#         print(len(res))
#         for k in res:
# #             wirte_to_file()
#             print(k)
    print(results[0].get()[0])
    end = time.time()
    print(end - start)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值