python 스 레 드 탱크(threadpool)모듈 사용 노트 상세 설명
3692 단어 python스 레 드 탱크threadpool
python 언어 를 사용 하여 스스로 스 레 드 탱크 를 실현 하거나 제3자 패키지 threadpool 스 레 드 탱크 를 사용 할 수 있 습 니 다.본 주 제 는 주로 threadpool 의 사용 과 그 안의 구체 적 인 실현 을 소개 합 니 다.
설치 및 안내
pip install threadpool
pool = ThreadPool(poolsize)
requests = makeRequests(some_callable, list_of_args, callback)
[pool.putRequest(req) for req in requests]
pool.wait()
첫 번 째 줄 은 poolsize 이렇게 많은 스 레 드 를 만 들 수 있 음 을 나타 내 는 스 레 드 풀 을 정의 합 니 다.두 번 째 줄 은 MakeRequests 를 호출 하여 다 중 스 레 드 를 열 함수 와 함수 관련 매개 변수 와 리 셋 함 수 를 만 들 었 습 니 다.그 중에서 리 셋 함 수 는 쓰 지 않 아 도 됩 니 다.default 는 없습니다.즉,MakeRequests 는 2 개의 매개 변수 만 있 으 면 실행 할 수 있 습 니 다.
세 번 째 줄 의 용법 은 이상 합 니 다.다 중 스 레 드 를 실행 할 모든 요청 을 스 레 드 풀 에 던 지 는 것 입 니 다.[pool.putRequest(req)for req in requests]는
for req in requests: pool.putRequest(req)
네 번 째 줄 은 모든 스 레 드 가 작업 이 끝 난 후에 종료 하 는 것 입 니 다.
코드 인 스 턴 스
import time
def sayhello(str):
print "Hello ",str
time.sleep(2)
name_list =['xiaozi','aa','bb','cc']
start_time = time.time()
for i in range(len(name_list)):
sayhello(name_list[i])
print '%d second'% (time.time()-start_time)
스 레 드 탱크 코드 를 바 꾸 면 시간 이 더 적 고 효율 적 입 니 다.
import time
import threadpool
def sayhello(str):
print "Hello ",str
time.sleep(2)
name_list =['xiaozi','aa','bb','cc']
start_time = time.time()
pool = threadpool.ThreadPool(10)
requests = threadpool.makeRequests(sayhello, name_list)
[pool.putRequest(req) for req in requests]
pool.wait()
print '%d second'% (time.time()-start_time)
함수 에 여러 개의 인자 가 있 을 때 함수 호출 시 첫 번 째 패키지 해제 list,두 번 째 패키지 dict 가 있 기 때문에 이렇게 할 수 있 습 니 다.
def hello(m, n, o):
""""""
print "m = %s, n = %s, o = %s"%(m, n, o)
if __name__ == '__main__':
# 1
lst_vars_1 = ['1', '2', '3']
lst_vars_2 = ['4', '5', '6']
func_var = [(lst_vars_1, None), (lst_vars_2, None)]
# 2
dict_vars_1 = {'m':'1', 'n':'2', 'o':'3'}
dict_vars_2 = {'m':'4', 'n':'5', 'o':'6'}
func_var = [(None, dict_vars_1), (None, dict_vars_2)]
pool = threadpool.ThreadPool(2)
requests = threadpool.makeRequests(hello, func_var)
[pool.putRequest(req) for req in requests]
pool.wait()
들 어 오 는 매개 변 수 를 변환 한 다음 에 스 레 드 탱크 를 가 져 가 야 합 니 다.
def getuserdic():
username_list=['xiaozi','administrator']
password_list=['root','','abc123!','123456','password','root']
userlist = []
for username in username_list:
user =username.rstrip()
for password in password_list:
pwd = password.rstrip()
userdic ={}
userdic['user']=user
userdic['pwd'] = pwd
tmp=(None,userdic)
userlist.append(tmp)
return userlist
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.