Warum haben neue Objekte in der Mehrfachverarbeitung dieselbe ID?
Ich habe versucht, ein neues Objekt in einem Prozess zu erstellen, wenn das Multiprocessing-Modul verwendet wurde. Allerdings verwirrt mich etwas.
Wenn ich ein Multiprocessing-Modul verwende, ist die ID des neuen Objekts dieselbe
for i in range(4):
p = multiprocessing.Process(target=worker)
p.start()
def worker():
# stanford named entity tagger
st = StanfordNERTagger(model_path,stanford_ner_path)
print id(st) # all the processes print the same id
Aber wenn ich Threading verwende, sind sie unterschiedlich:
for i in range(4):
p = threading.Thread(target=worker)
p.start()
def worker():
# stanford named entity tagger
st = StanfordNERTagger(model_path,stanford_ner_path)
print id(st) # threads print differnt ids
Ich frage mich, warum sie unterschiedlich sind.