不明白用uwsgi多进程运行时,每个线程生成的对象的
id()
值是一样的,每个进程的threading.get_ident()
值是一样的
我使用
--proces 4
选项在 4 个进程中使用 flask app 运行 uwsgi。
16:47:09,709|object initiating... obj_id : 139755460182224, pid : 9833, threading.get_ident : 139756071208704|
16:47:09,975|object initiating... obj_id : 139755459113168, pid : 9835, threading.get_ident : 139756071208704|
16:47:09,982|object initiating... obj_id : 139755459113168, pid : 9832, threading.get_ident : 139756071208704|
16:47:10,022|object initiating... obj_id : 139755459113168, pid : 9834, threading.get_ident : 139756071208704|
但是我不明白每个进程生成的对象的
id()
值是一样的,也不明白threading.get_ident()
值是一样的
我还以为基于对象内存地址的
id
值不可能是一样的,因为进程之间不共享内存,但是我不明白id值是一样的
(当然,我知道可以一样,因为是相对内存地址,不是绝对内存地址,但我每次都理解不一样。)
还有,如果进程不同,线程当然也会不同,但是我不明白线程标识符值,
threading.get_ident()
,结果值是一样的
如何理解uwsgi的multiprocessing?