サービス時間がいくつかの関数の計算の複雑さに依存するシミュレーションを作成したいと考えています。
関数の処理により、リクエストの到着が停止することはありません。テストのために、数秒間 CPU を使用する関数の例を使用します。
sorted([float(random.random()) for i in range(1000000)])
サービスをシミュレートするためにそれを呼び出す方法はありますが、新しいサービス要求の到着を妨げません。この関数を呼び出すと、指定された時間ではなく、関数の実行直後に新しいサービス リクエストが到着します。
def visit(self, timeAtNAT, res):
arrive=time.clock()-startTime
print("%7.4f. Packet #%s arrived." % (time.clock()-startTime, self.name))
yield request, self, res
wait = time.clock()-startTime - arrive
print("%7.4f. Packet #%s waited %6.3f" % (time.clock()-startTime, self.name, wait))
sorted([float(random.random()) for i in range(1000000)])
yield release, self, res
print("%7.4f. Packet #%s left" % (time.clock()-startTime, self.name))
したがって、私の例では、前のパケットが残った後にのみ新しいパケットが到着します。
を使用しようとしましたが、(クラスmultiprocessing
の) 命名衝突が発生しました。Process
私は SimPy、並列プログラミング、および Python の初心者です。