我发现了为什么多个过程在python中具有相同的对象ID,但是我不太了解这是什么意思"似乎输出总是相同的。
➜ ~ python test2.py
4419085696
4419085696
➜ ~ python test2.py
4342830464
4342830464
➜ ~ python test2.py
4510156160
4510156160
➜ ~ python test2.py
4329948544
4329948544
➜ ~ python test2.py
4468004224
4468004224
➜ ~ python test2.py
4326647168
4326647168
➜ ~ python test2.py
4445738368
4445738368
➜ ~ python test2.py
4388980096
4388980096
➜ ~ python test2.py
4511999360
4511999360
➜ ~ python test2.py
4562851200
4562851200
➜ ~ python test2.py
4535031168
4535031168
➜ ~ python test2.py
4314420608
4314420608
➜ ~ python test2.py
4536034688
4536034688
我还找到此参考http://code.activestate.com/lists/python-list/656748/在Web上。似乎Python多个过程共享相同的对象。
有人可以帮助进一步解释吗?提前致谢。
cpython中对象的 id
是对象内存地址,如该过程本身本身所见。OS防止不同的过程看到其他过程内存。
总体简化警告就每个过程而言,其内存空间始于0并上升。启动并要求从操作系统中启动1000字节的内存块的两个不同的过程都会认为它们具有内存块0-1000,但实际上并未共享内存。
请参阅https://en.wikipedia.org/wiki/virtual_address_space,以获取一个很好的介绍和更好的解释。