python多執行緒例項

2021-09-09 05:38:27 字數 2102 閱讀 1310

import threading

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()

1.當用繼承的方式去建立執行緒時,一定要重寫父類的run()方法

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 如果...