# coding=utf-8
import threading
import time
mutex = threading.lock()
class testtreading(threading.thread):
def __init__(self,id):
threading.thread.__init__(self)
self.id =id
"""重寫父類thread的run()方法,此方法一旦生成執行緒物件自動呼叫"""
def run(self):
"""開始上鎖"""
mutexflage = mutex.acquire()
"""判斷上鎖ok,你們同時開始在規定時間考試,都來做加法運算,給你們引數給的不同避免抄襲做自己的結果"""
if mutexflage:
for i in range(10000):
print self.add(),self.getname(),time.asctime()
"""事情完了解除鎖讓別的執行緒用,哪個執行緒需要資源可以用了,本執行緒用完了,不然就blocked阻塞,形成死鎖了"""
mutex.release()
def add(self):
x=self.id
for i in range(101):
x=x+i
return x
if __name__ =="__main__":
threads=[testtreading(i)for i in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
print "main thread closed"
多執行緒併發
多執行緒併發主要有3個方面 1 同步器 主要有synchronized,reentrantlock 訊號量,門栓 countdownlatch 障柵 cyclicbarrier 交換器。2 同步容器 主要包括 對映 集 佇列 對映 concurrenthashmap,concurrentskipli...
多執行緒併發
更簡單的執行緒池 多執行緒和多程序都可以很容易的實現併發,協程通過切換上下文來充分利用cpu實現併發效果 threading模組 thread類的基本狀態和行為 屬性名和值 name none,group none,target none,args kwargs daemon none 方法 sta...
(多執行緒)多執行緒的併發安全
多執行緒併發操作同乙個資源 同步鎖 多執行緒操作的鎖必須唯一 必須搞清楚 哪些 需要同步?那些在操作共享資源的 只要包含非讀的操作,或者根據共享資源進行條件判斷的,就需要同步!同步 塊解決 package com.gc.thread 多執行緒操作共享資源 併發 執行緒安全問題 同步 鎖 相對而言效能...