python 다 중 스 레 드 와 global 변수 에 대한 상세 한 설명
예 를 들 어 파일 을 다운로드 한 url 목록 에 200 개의 url 을 추가 하여 50 개의 스 레 드 를 엽 니 다.내 파충류...50 개의 url 을 기어 오 르 고 모두 0.html 라 고 이름 을 지 었 다.즉,마지막 다운로드 결 과 는 0.html(중복 되 는 커버)1 개,그리고 1-150 이 었 다.다음은 제 코드 입 니 다.
x = str(theguardian_globle.g)
#x
filePath = "E://wgetWeiBao//"+x+".html"
try:
wget.download(url,filePath)
theguardian_globle.g+=1
print x+" is downloading..."
except:
print "error!"
# g
global g
g = 0
나중에 문 제 를 발견 했다.다 중 스 레 드+전역 변 수 는 위험한 조합 이다.프로그램 이 여러 스 레 드 가 동시에 실행 되 고 여러 스 레 드 가 동시에 전체 변 수 를 조작 하면 혼란 을 일 으 킬 수 있 기 때문이다.다 중 스 레 드 에서 전역 변 수 를 조작 하려 면 이 작업 에 자 물 쇠 를 추가 해 야 합 니 다.다음은 수 정 된 코드 입 니 다.
:
def downLoad(url,num):
x = str(num)
filePath = "E://wgetWeiBao//"+x+".html"
try:
wget.download(url,filePath)
print x+" is downloading..."
except:
print "error!"
_
class Cosumer(threading.Thread):
def run(self):
print('%s:started' % threading.current_thread())
while True:
global gCondition
gCondition.acquire()
while q.empty()==True:
gCondition.wait()
url = q.get()
num = theguardian_globle.g
theguardian_globle.g+=1
gCondition.release()
downLoad(url,num)
큰 성 과 를 거두다.이 편 은 python 다 중 스 레 드 와 global 변 수 를 상세 하 게 설명 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.