Я предлагаю вам прочитать учебник , прежде чем задавать базовые вопросы, так как это сэкономит время каждого, включая ваше.
Короче говоря, когда вы используете Thread
, основной поток и запущенный потокиспользовать то же пространство памяти, но x
в функции foo
- это другой внутренний x
, но не такой же x
снаружи.Таким образом, вы просто меняете внутренний x
, но не x
снаружи.Кроме того, на самом деле y
также является внутренним y
, но вы изменяете то, на что оно указывает, но не само по себе.Вы можете подтвердить это, изменив y.append(5)
на y = [0]
, чтобы увидеть, изменится ли внешняя y
.
И, когда вы используете Process
, основной поток и запущенный процесс сохраняют полностью отдельное пространство памяти.