亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Python中使用functools實現注解同步

發布時間:2021-03-29 16:49:57 來源:億速云 閱讀:114 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關怎么在Python中使用functools實現注解同步,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

首先要求自己的類中有一個鎖對象并且在類初始化的時候初始化這個鎖對象,比如:

class MyWorker(object):
  def __init__(self):
    self.lock = threading.Lock()
    ...
  ...

然后創建一個 synchronized 函數,這個函數裝飾具體對象的具體方法,將方法放到獲取/釋放鎖之間來運行,如下

def synchronized(func):
  @functools.wraps(func)
  def wrapper(self, *args, **kwargs):
    with self.lock:
      return func(self, *args, **kwargs)
  return wrapper

最后在需要使用同步的方法上使用 @synchronized 來標準方法是同步方法,比如:

@synchronized
def test(self):
  ...

下面是一個完整例子,僅供參考:

import threading
import functools
import time
def synchronized(func):
  @functools.wraps(func)
  def wrapper(self, *args, **kwargs):
    with self.lock:
      return func(self, *args, **kwargs)
  return wrapper
class MyWorker(object):
  def __init__(self):
    self.lock = threading.Lock()
    self.idx = 0
  @synchronized
  def test1(self):
    for i in range(1, 11):
      self.idx = self.idx + 1
      print "Test1: " + str(self.idx)
      time.sleep(1)
  @synchronized
  def test2(self):
    for i in range(1, 11):
      self.idx = self.idx + 1
      print "Test2: " + str(self.idx)
      time.sleep(1)
  @synchronized
  def test3(self):
    for i in range(1, 11):
      self.idx = self.idx + 1
      print "Test3: " + str(self.idx)
      time.sleep(1)
worker = MyWorker()
threading.Thread(target=worker.test1).start()
threading.Thread(target=worker.test2).start()
threading.Thread(target=worker.test3).start()

看完上述內容,你們對怎么在Python中使用functools實現注解同步有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黑龙江省| 沽源县| 娱乐| 沈丘县| 五原县| 堆龙德庆县| 延川县| 新建县| 石河子市| 陆丰市| 抚宁县| 安福县| 祥云县| 西藏| 通化市| 江西省| 嘉禾县| 盐池县| 兰州市| 恩平市| 日照市| 夏津县| 桂东县| 德兴市| 栖霞市| 莲花县| 宝应县| 满城县| 安顺市| 福州市| 内丘县| 利川市| 峨山| 九龙坡区| 集安市| 小金县| 长乐市| 中方县| 广西| 杭锦旗| 平湖市|