2011-04-03 51 views
2

我正在用python下載urllib2的圖像。這些操作被定時器調用,所以有時會掛起我的程序。可以使用urllib2和線程嗎?將圖像載入新線程

我當前的代碼:

f = open('local-path', 'wb') 
f.write(urllib2.urlopen('web-path').read()) 
f.close() 

那麼,如何在運行新線程的代碼?

回答

2

這是我想你所要求的一個非常基本的例子。是的,正如RestRisiko所說,urllib2是線程安全的,如果這實際上是你所要求的。

import threading 
import urllib2 
from time import sleep 

def load_img(local_path, web_path): 
    f = open(local_path, 'wb') 
    f.write(urllib2.urlopen(web_path).read()) 
    f.close() 

local_path = 'foo.txt' 
web_path = 'http://www.google.com/' 

img_thread = threading.Thread(target=load_img, args=(local_path, web_path)) 
img_thread.start() 
while img_thread.is_alive(): 
    print "doing some other stuff while the thread does its thing" 
    sleep(1) 
img_thread.join() 
1

urllib2是線程安全的 - 用於記錄。