小编Min*_*hen的帖子

为什么多处理中的新对象具有相同的ID?

我尝试在使用多处理模块时在进程中创建一个新对象.然而,有些事让我困惑.

当我使用多处理模块时,新对象的id是相同的

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
Run Code Online (Sandbox Code Playgroud)

但是当我使用线程时,它们是不同的:

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
Run Code Online (Sandbox Code Playgroud)

我想知道为什么他们不同.

python multiprocessing

6
推荐指数
1
解决办法
874
查看次数

标签 统计

multiprocessing ×1

python ×1