import threading1.當用繼承的方式去建立執行緒時,一定要重寫父類的run()方法import time
class mythread(threading.thread):
def __init__(self, n):
super(mythread, self).__init__()
self.n = n
def run(self):
print("runnint task", self.n)
t1 = mythread("t1")
t2 = mythread("t2")
t1.start() # runnint task t1
#t1.join()
t2.start() # runnint task t2
#t2.join()
2.當執行緒的run()方法結束的時候,執行緒也結束
3.我們認為是無法完全控制線程的,但是我們可以通過一些方式來影響執行緒的呼叫
4.執行緒的幾種狀態 新建----就緒----執行-----死亡 等待(阻塞)主要出現就緒與執行之間
5.在unix平台上,當某個程序終結之後,該程序需要被其父程序呼叫wait,否則程序成為殭屍程序(zombie)。所以,有必要對每個process物件呼叫join()方法 (實際上等同於wait)。對於多執行緒來說,由於只有乙個程序,所以不存在此必要性。
"""例1:# 假定這是你的銀行存款:
balance = 0
lock = threading.lock()
def change_it(n):
# 先存後取,結果應該為0:
global balance
balance = balance + n
balance = balance - n
def run_thread(n):
#lock = threading.lock()
global lock
for i in range(100000):
lock.acquire()
try:
# 放心地改吧:
change_it(n)
finally:
# 改完了一定要釋放鎖:
lock.release():
t1 = threading.thread(target=run_thread, args=(5,))
t2 = threading.thread(target=run_thread, args=(8,))
t1.start()
t2.start()
#t1.join()
#t2.join()
print balance
例2:#新執行緒執行的**:
def loop(fn,a,b):
print fn,a,b
print 'thread %s is running...',threading.current_thread().name
n = 0
while n < 5:
n = n + 1
print "thread %s>>>%s",threading.current_thread().name,n
time.sleep(1)
print "thrad %s end",threading.current_thread().name
print "thread %s is running...",threading.current_thread().name
filename = "tgets.csv"
t = threading.thread(target=loop,name="loopthread",args=(filename,5,5))
t.start()
t.join()
print "thread %s ended.",threading.current_thread().name
例3:hehe=6
def f():
global hehe
print(hehe)
hehe=3
f()print(hehe)
"""
python多執行緒例項
a 建立乙個thread的例項,傳給他乙個函式 import threading from time import sleep def thread body arg1,arg2 print i am a child thread arg1,arg2 sleep 10 print end child...
python多執行緒採集例項
python多執行緒採集例項 python作為一種流行的指令碼程式語言,其功能的強大自然不言而喻,豆瓣網就是使用python開發的,另外很多的it公司了在使用python,也充分說明了python的強大,下面是python多執行緒採集例項 python多執行緒採集例項 coding gb2312 a...
Python簡單多執行緒例項
剛剛學習了python的多執行緒,為了測試多執行緒對處理資料的影響,自己寫了乙個簡單的例項實踐一下多執行緒 coding utf 8 python多執行緒例項 import threading import datetime import time defhandleurllista 執行緒a 如果...