91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么在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

内乡县| 贵州省| 凤台县| 滁州市| 乡城县| 新乡市| 广东省| 石门县| 上高县| 固镇县| 阳高县| 双鸭山市| 晋州市| 应用必备| 庆阳市| 成武县| 馆陶县| 阆中市| 商水县| 桃江县| 红河县| 科技| 延寿县| 上虞市| 马鞍山市| 鹤壁市| 巴彦淖尔市| 额尔古纳市| 焦作市| 三门县| 顺平县| 南充市| 扎鲁特旗| 永寿县| 汉寿县| 和平县| 延寿县| 宣恩县| 志丹县| 根河市| 徐州市|