2

これが重複していたらすみません。私は少し調べましたが、おそらく私が使用している言葉遣いは最善ではありません(私は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ループにもタイムアウトがあるはずですが、後で心配することができます。

ありがとう!

4

0 に答える 0