上**。。
1、經典的生產者,消費者問題
2、lock和rlock差不多:lock會死鎖,rlock不會,具體google
#coding:gbk
created on 2013-1-4
@author: jimmy
@note: 1、乙個簡單的建立執行緒例子,外加生產者消費者問題
2、執行緒同步初步
import log
import time
import threading
phone = 0
class mthread(threading.thread): #mthread類繼承自threading.thread類
def __init__(self, threadname):
#重寫__init__方法的時候要記得呼叫基類的__init__方法
threading.thread.__init__(self,name = threadname)
def run(self): #重寫run()方法,把自己的執行緒函式的**放到這裡
#func
pass
#生產者
class producer(mthread):
def __init__(self, lock, producername = "producer"):
mthread.__init__(self, producername)
self.lock = lock
pass
def run(self):
global phone
while 1:
self.lock.acquire()
phone += 1
print "生產乙個"
print "produce now: " + self.getname() + " phonenum = " + str(phone)
self.lock.release()
time.sleep(5)
#消費者
class consumer(mthread):
def __init__(self, lock, consumername = "consumer"):
mthread.__init__(self, consumername)
self.lock = lock
pass
def run(self):
global phone
while 1:
self.lock.acquire()
if phone < 1:
print "沒有**了,sleep 1s"
self.lock.release()
time.sleep(1)
else:
phone -= 1
print "消費乙個,sleep 3s"
print "consume now: " + self.getname() + " phonenum = " + str(phone)
self.lock.release()
time.sleep(3)
#同步的操作
class sync():
def __init__(self):
pass
if __name__ == "__main__":
# mlog = log.logger()
# mlog.log("create thread method")
lock = threading.rlock()
#2個生產者
p0 = producer(lock,"p0").start()
p1 = producer(lock,"p1").start()
p2 = producer(lock,"p2").start()
#3個消費者
c0 = consumer(lock,"c0").start()
c1 = consumer(lock,"c1").start()
c2 = consumer(lock,"c2").start()
python2 執行緒基礎
執行緒基礎 匯入,建立函式,建立線和執行 import thread import time 為執行緒定義乙個函式 defprint time threadname,delay count 0 while count 5 time.sleep delay count 1 print s s thre...
玩轉python(2)多執行緒的歷史2
執行緒這個概念早在多核cpu出現之前就提出來了,單核時代的多執行緒主要是為了讓cpu盡量不處於空閒狀態,使其計算能力始終能得到利用。但本質上講,在任意時刻只有乙個執行緒在執行。儘管任意時刻只有乙個執行緒在執行,但是依然有些問題需要解決,其中最重要的就是執行緒安全。這個問題的 很簡單,我之前說過,cp...
Python2學習筆記(2)
python 中可以直接處理的資料型別包括整數 浮點數 字串 布林值 空值。此外,python還提供了list 字典等資料型別。同時也允許自定義資料型別。30 3 10 10 3 3 10.0 3 3.3333333333333335 10 3.0 3.3333333333333335 print ...