Невозможно изменить переменные класса с помощью multiprocessing.Process объекта в Python3

Если я пишу класс с переменной класса, генерирую два объекта класса и изменяю значение переменной класса, используя метод одного из двух объектов, значение переменной класса, конечно, также изменяется для другого объекта. Вот что я имею в виду в коде:

class DemoClass:
    ClassVariable = False

    def __init__(self):
        pass

    def do(self):
        print(DemoClass.ClassVariable)
        DemoClass.ClassVariable = True


class1 = DemoClass()
class1.do()  # False
class2 = DemoClass()
class2.do()  # True

Однако, если я делаю то же самое с многопроцессорной обработкой. Процесс не работает. Значение переменной класса изменится только для объекта, который его изменил:

import multiprocessing

class DemoProcess(multiprocessing.Process):
    ClassVariable = False

    def __init__(self):
        multiprocessing.Process.__init__(self)

    def run(self):
        print(DemoProcess.ClassVariable)
        DemoProcess.ClassVariable = True
        print(DemoProcess.ClassVariable)


if __name__ == '__main__':
    process_list = []
    p1 = DemoProcess()
    process_list.append(p1)
    p1.start()  # False True
    p2 = DemoProcess()
    process_list.append(p2)
    p2.start()  # False True; should be: True True

    for p in process_list:
        p.join()

Код ведет себя так, как будто каждый процесс генерирует новую переменную класса. Я делаю что-то неправильно?

Ответы на вопрос(1)

Ваш ответ на вопрос