import multiprocessing
import os
g_task=["task"]
def task1():
g_task.append("task1")
print("--task1--进程 id=%d---g_task=%s----g_task 的 id=%d" % (os.getpid(), g_task, id(g_task)))
def task2():
g_task.append("task2")
print("--task2--进程 id=%d---g_task=%s----g_task 的 id=%d" % (os.getpid(), g_task, id(g_task)))
def main_task():
g_task.append("main_task")
print("--main_task--进程 id=%d---g_task=%s----g_task 的 id=%d" % (os.getpid(), g_task, id(g_task)))
if __name__ == '__main__':
p1 = multiprocessing.Process(target=task1)
p1.start()
p1.join()
p2 = multiprocessing.Process(target=task2)
p2.start()
p2.join()
main_task()
为什么在 linux 中 id(g_task)这个地址相同 而在 windows 中 id(g_task)地址却不同呢?
import os
g_task=["task"]
def task1():
g_task.append("task1")
print("--task1--进程 id=%d---g_task=%s----g_task 的 id=%d" % (os.getpid(), g_task, id(g_task)))
def task2():
g_task.append("task2")
print("--task2--进程 id=%d---g_task=%s----g_task 的 id=%d" % (os.getpid(), g_task, id(g_task)))
def main_task():
g_task.append("main_task")
print("--main_task--进程 id=%d---g_task=%s----g_task 的 id=%d" % (os.getpid(), g_task, id(g_task)))
if __name__ == '__main__':
p1 = multiprocessing.Process(target=task1)
p1.start()
p1.join()
p2 = multiprocessing.Process(target=task2)
p2.start()
p2.join()
main_task()
为什么在 linux 中 id(g_task)这个地址相同 而在 windows 中 id(g_task)地址却不同呢?