執行緒安全的純python memcached客戶端

2021-09-01 12:11:02 字數 1083 閱讀 1853

前面測試過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 執行緒安全 的...