私がしたいのは、自分のクラスメソッドの一つでマルチプロセッシングを使うことです。私はPythonのヘルプファイルの例に従おうとしましたが、結果が期待できません。ここに私のクラスファイルは次のとおりです。ここでクラス内でのPythonでのマルチプロセッシングの使い方
import os
import telnetlib
class PowerSupply():
# ---------------------------------- #
def __init__(self,port_no,my_name):
self.Status = "Off"
self.Port = port_no
self.Name = my_name
self.tn = None
self.HOST = "192"
self.P = Process(target=self.print_time, args=('tname','delay')
self.P.start()
self.P.join()
# ---------------------------------- #
def TurnOn(self):
onCommand = "OUT 1\r"
if self.Status == "ON":
print "I'm already on"
else:
self.tn = telnetlib.Telnet(self.HOST,self.Port)
self.tn.write(onCommand)
self.Status = "ON"
print "I am now on"
# ---------------------------------- #
def TurnOff(self):
offCommand = "OUT 0\r"
self.tn.write(offCommand)
self.tn.close()
print "I am now off"
# ---------------------------------- #
def SetVoltage(self,volts):
voltageCommand = "PV" + " " + str(volts) + "\r"
self.tn.write(voltageCommand)
# ---------------------------------- #
def GetAllData(self):
while(self.Status == "ON"):
self.tn.write("DVC?\r")
all_data = self.tn.read_some()
vdc = all_data.split(',')
vdc = vdc[0]
print vdc
# ---------------------------------- #
def print_time(self, tname, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print "%s: %s"%(tname, time.ctime(time.time()))
は、私は実装を使用しようとする方法である:
ps1 = PowerSuppy(8000,'L1')
ps1.print_time('thread1',2)
ps1.print_time('thread2',3)
私は上記のようにそれを使用しようとすると、それはまだ手続きアプローチを使用して呼び出すことはありません。 thread1が完了するまでthread2を返します。私が間違っていることを正確には何ですか、どうすれば修正できますか?
コードに構文エラーがあります( 'self.P = Process(target = self.print_time、args =( 'tname'、 'delay')')。 –
ちょうど閉じ括弧。 – DeeTee