python2執行緒 python多執行緒2執行緒應用

2021-10-13 06:58:16 字數 2027 閱讀 8427

上**。。

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