Прежде всего, вы действительно хотите многопроцессорность здесь, а не многопоточность?Вы просили альтернативные решения, поэтому я придумываю многопоточность для этой проблемы.Вы должны проверить этот ответ для ясности, где обсуждается в основном та же проблема.Итак, я думаю, что проблема заключается в том, что ваша функция печати выполняет только те, что, следовательно, вы также хотите цикл там.
from threading import Thread
import numpy as np
import time
store = np.array([0, 0, 0])
def operate_camera():
while True:
global store
store += np.ones_like(store)
def print_func():
while True:
time.sleep(15)
print(store)
if __name__ == "__main__":
t1 = Thread(target=operate_camera)
t2 = Thread(target=print_func)
t1.start()
t2.start()
# other code
t1.join()
t2.join()
Вы можете заметить, что этот код использует глобальный объект, который не является лучшей практикой, нонам нужен общий объект там.
В случае функций с параметрами
from threading import Thread
import numpy as np
import time
def operate_camera(store):
while True:
store += np.ones_like(store)
def print_func(store):
time.sleep(1)
print(store)
if __name__ == "__main__":
store = np.array([0, 0, 0])
camera_thread = Thread(target=operate_camera, args=(store, ))
camera_thread.setDaemon(True)
camera_thread.start()
while True:
print_func(store)