python thread,threading模組提供了對多執行緒的支援,不過通常我們使用threading模組來進行多執行緒程式設計。
多執行緒模組使用方法:
1. 使用thread模組中的start_new_thread(function,元組引數[,字典引數])來執行函式,通常直接在python shell下執行。
2. 繼承 threading.thread 類,覆蓋 run方法。
以下舉例說明兩種用法:
方法1:
>>> import thread
>>>
>>> def run(num):
... for i in range(num):
... print i
...>>>
... thread.start_new_thread(run,(10,))
方法2:
# -*- coding:utf-8 -*-
# 功能:多執行緒數值累加
# author:herong
# date:2013/4/29
import threading
import time
#######類定義#################################
class mythread(threading.thread):
'''求合執行緒類'''
def __init__(self,name,start,end):
threading.thread.__init__(self,name=name)
self.__end = end
self.__start = start
def run(self):
global gltotal
global gthreadcnt
sum = 0
for i in range(self.__start,self.__end+1):
sum+=i
time.sleep(1)
#獲取鎖
glock.acquire()
try:
gltotal+=sum
gthreadcnt+=1
finally:
#釋放鎖
glock.release()
#pass;
print '#thread-%s,(sum(%s-%s))=%s\n'%(self.getname(),self.__start,self.__end,sum)
#time.sleep(2)
#################全域性變數區############################
#總和gltotal = 0
#控制變數
gthreadcnt = 0
#鎖物件
glock = threading.rlock()
gothreadarray =
#################執行**塊############################
step = 10
for i in range(10,100+1,step):
t = mythread(i/10,i-step+1,i)
for i in gothreadarray:
i.start()
#i.join()
#for i in gothreadarray:
#i.join()
while gthreadcnt < 10:
print 'wait...\n'
time.sleep(1)
print 'total:',gltotal
輸出結果:
e:\python\thread>python test2.py
wait...
#thread-1,(sum(1-10))=55
#thread-2,(sum(11-20))=155
wait...
#thread-4,(sum(31-40))=355
#thread-6,(sum(51-60))=555
#thread-8,(sum(71-80))=755
#thread-3,(sum(21-30))=255
#thread-7,(sum(61-70))=655
#thread-9,(sum(81-90))=855
#thread-5,(sum(41-50))=455
#thread-10,(sum(91-100))=955
total: 5050
python多執行緒筆記
顯示當前有幾條執行緒 print threading.active count 顯示具體的程序名 print threading.enumerance 顯示當前正在執行的執行緒 print threading.current thread 新增新的執行緒名add thread threading.t...
python多執行緒 Python多執行緒的一些知識
了更好地體驗多執行緒爬蟲,本章先介紹下需要了解的知識點,以便後續的多執行緒爬蟲文章有更好的理解與學習。在接下來要講的知識點中,感興趣的讀者們請先弄清楚程序和執行緒兩者是什麼?它們各自有著什麼樣的關係呢?讀下廖雪峰老師簡單介紹的例子,比喻非常生動清晰,故這裡不多做講解。程序和執行緒 www.liaox...
多執行緒筆記(一)
原子性 乙個操作要麼全部執行成功,要麼全部執行失敗 可見性 乙個執行緒修改了共享變數之後,其他執行緒能夠立刻看到這個修改 有序性 程式執行的順序是按照 的邏輯先後循序來執行的 編譯器或處理器為了優化程式的執行效能,對指令執行的順序重新排列 目的 盡可能減少暫存器的讀取和儲存次數,復用暫存器儲存的資料...