前面測試過python-memcached客戶端通過thread local實現是有問題,我修改了一下去掉thread local模式,通過連線池的方式實現,使用和之前的方式完全一致
import memcache
import memcache2
import threading
mc = memcache2.client(['127.0.0.1:11211'])
class testthread(threading.thread):
def __init__(self,redis_cache):
threading.thread.__init__(self)
self.mc = mc
def run(self):
while true:
obj = self.mc.get("123")
if not obj:
self.mc.set("123","1234567890",60)
print self.getname()+'set'
#print self.redis_cache.connection_pool._created_connections
for i in xrange(8):
t = testthread(mc)
t.start()
#mc.set("abc1","100",3600)
#mc.set("abc2","100",3600)
#mc.set_multi(,3600)
#for i in xrange(1000):
# mc.incr("abc1")
# mc.incr("abc1")
# mc.decr("abc1")
#print mc.get("abc")
#print mc.get_multi(["key1","key2"])
#mc.delete_multi(["key2"])
#mc.flush_all()
源**:
執行緒安全與非執行緒安全的區別
執行緒安全 是多執行緒訪問時,採用加鎖機制,當乙個執行緒訪問該類的某個資料時,進行保護,其他執行緒不能進行訪問直到該執行緒讀取完,其他執行緒才可使用。不會出現資料不一致或者資料汙染。非執行緒安全 是多執行緒訪問時,不提供資料訪問保護,有可能出現多個執行緒先後更改資料造成所得到的資料是髒資料。所得資料...
執行緒安全(常用的執行緒安全類)
string中的stringbuffer list集合中的vector copyonwritearraylist reentrantlock lock鎖 是執行緒安全的arraylist vector是增刪改查方法都加了synchronized,保證同步,但是每個方法執行的時候都要去獲得鎖,效能就會...
PHP執行緒安全與非執行緒安全的區別
原文 windows版的php從版本5.2.1開始有thread safe 執行緒安全 和none thread safe nts,非執行緒安全 之分,這兩者不同在於何處?到底應該用哪種?這裡做乙個簡單的介紹。因此,如果是使用isapi的方式來執行php就必須用thread safe 執行緒安全 的...