Python の新しく強力な世界を探求している人として、私は自分のコーディングの理解の問題に直面しています。誰かが私を助けてくれれば幸いです。
私の問題を簡単にするために、例を作成しました。たとえば、マルチプロセッシングを同時に実行する 2 つの関数があるとします。1 つは永続的なデータ リスナーで、もう 1 つはその値を出力します。さらに、データを所有するオブジェクトが 1 つあります。データは set/get を介して設定されます。したがって、課題は、データをグローバルに配置せずに、両方の関数がデータにアクセスできるようにする方法です。私の理解不足は、関数間でオブジェクトを転送する方法のどこかにあると思います。
注 : 両方の関数が同期している必要はなく、while は単に無限ループ用です。それは、データをどのように持ち込むかだけです。
これにより、次のようなコードが得られます(アイデアを得るために、機能していないことはわかっています):
import multiprocessing
#simply a data object
class data(object):
def __init__(self):
self.__value = 1
def set_value(self, value):
self.__value = value
def get_value(self):
return self.__value
# Data listener
def f1(count):
zae = 0
while True:
zae += 1
count.set_value = zae
def f2(count):
while True:
print (count.get_value)
#MainPart
if __name__ == '__main__':
print('start')
count = data()
jobs = []
p1 = multiprocessing.Process(target =f1(count))
p2 = multiprocessing.Process(target =f2(count))
jobs.append(p1)
jobs.append(p2)
p1.start()
p2.start()
print ('end')
私を啓発してください、
エイドリアンモンクよろしく