栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 进程池/线程池

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 进程池/线程池

1.进程/线程池:

#进程:
from concurrent.futures import ThreadPoolExecutor ,ProcessPoolExecutor

def func(args):
    time.sleep(1)
    print(args)

if __name__=='__main__':
    Pool = ProcessPoolExecutor(3)
    for i in range(10):
        Pool.submit(func,i)
 输出:
 0
 2
 1
 
 3
 4
 5
 
 6
 8
 7
 
 9


Process finished with exit code 0

#线程:
def func(args):
    time.sleep(2)
    print(args)


if __name__=='__main__':
    Pool = TheadPoolExecutor(3)
    for i in range(10):
        Pool.submit(func,i)
输出:
1
20

3
5
4

7
6
8

9

Process finished with exit code 0

2.进程锁:

import multiprocessing

lock = multiprocessing.RLock()
def func(args):
	print(' >>> 有进程进来了 >>> ')
	lock.acquire()
	print(args)
	lock.release()
if __name__=='__main__':

	multiprocessing.Process(target = func,args=('进程 >>> %s' %1,)).start()
	multiprocessing.Process(target = func,args=('进程 >>> %s' %2,)).start()
输出:
 >>> 有进程进来了 >>> 
进程 >>> 1
 >>> 有进程进来了 >>> 
进程 >>> 2

Process finished with exit code 0

3.线程锁:

import threading
lock = threading.RLock()
def func(args):
	print(' >>> 有线程进来了 >>> ')
	lock.acquire()
	print(args)
	lock.release()
if __name__=='__main__':

	threading.Thread(target = func,args=('线程 >>> %s' %1,)).start()
	threading.Thread(target = func,args=('线程 >>> %s' %2,)).start()
输出:
 >>> 有线程进来了 >>> 
线程 >>> 1
 >>> 有线程进来了 >>> 
线程 >>> 2

Process finished with exit code 0

4.对列(Queue):

import queue

q = queue.Queue()
q.put(' >>> 上酒菜 >>> ')
q.put('客官 >>> 来了')

q1 = q.get()
q2 = q.get()

print(q1)
print(q2)
输出:
 >>> 上酒菜 >>> 
客官 >>> 来了

Process finished with exit code 0
#没有加队列:
import threading , time

def func(args):
	print(' >>> 有线程进来了 >>> ')
    time.sleep(1)
	print(args)

if __name__=='__main__':

	threading.Thread(target = func,args=('线程 >>> %s' %1,)).start()
	threading.Thread(target = func,args=('线程 >>> %s' %2,)).start()

输出:

 >>> 有线程进来了 >>> 
 >>> 有线程进来了 >>> 
线程 >>> 2
线程 >>> 1

Process finished with exit code 0
#加队列:
import threading , queue ,time

q = queue.Queue(5)
def func(args):
	print(' >>> 有线程进来了 >>> ')
	time.sleep(2)
	print(args)

if __name__=='__main__':

	p1 = threading.Thread(target = func,args=('线程 >>> %s' %1,)).start()
	p2 = threading.Thread(target = func,args=('线程 >>> %s' %2,)).start()
	q.put(p1)
	q.put(p2)
	v1 = q.get()
	v2 = q.get()
	print(v1)
	print(v2)
输出:
 >>> 有线程进来了 >>> 
 >>> 有线程进来了 >>> None

None
线程 >>> 1
线程 >>> 2

Process finished with exit code 0
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/916182.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号