これが重複していたらすみません。私は少し調べましたが、おそらく私が使用している言葉遣いは最善ではありません(私はPythonに非常に慣れていません)....
とにかく、ここに問題があります。温度コントローラーとやり取りするためのコードを書いています。このコントローラーを、温度を設定して読み取るためのメソッドを持つクラスで表現したい---次のようなものです。
class TempController:
def getTemp(self):
# some code ...
return temp
def setTemp(self, newtemp):
# some code ...
return newtemp
def execute(self, method, newtemp=None):
if method='set':
return setTemp(newtemp)
elif method='get':
return getTemp()
return None
ここで、このオブジェクトのメソッドを同時に呼び出す 2 つのオブジェクトを用意します。execute
一方が既にing している場合、もう一方が最初の処理が完了するまで待たなければならないことを確認する最善の方法は何ですか? Pythonはすでにこれを保証していますか? そうでない場合、私が考えた最も簡単な可能性は、次のように編集することです。
locked = False
def execute(self, method, newtemp=None):
while locked:
'wait'
ans = None
locked = True
if method='set':
ans = setTemp(newtemp)
elif method='get':
ans = getTemp()
locked=False
return None
おそらくwhileループにもタイムアウトがあるはずですが、後で心配することができます。
ありがとう!