Самой базовой формой чего-то, что я хочу кодировать, является код следующим образом:
import threading
arr = []
def test(id):
global arr
arr.append(id)
threading.Thread(target=test, args="8")
print(arr)
То, что я хочу сделать, - добавить "8" к глобальной переменной, называемой arr. Но этого не происходит, и print (arr) дает этот результат:
[]
Однако, если я использую этот код, все работает нормально:
import threading
arr = []
def test(id):
global arr
arr.append(id)
test("8")
print(arr)
Проблема, похоже, связана с потоком, поэтому как я могу использовать поток, а также изменить значение глобальной переменной внутри теста функции?
Вы также должны запустить поток, чтобы фактически запустить функцию test
import threading
arr = []
def test(id):
global arr
arr.append(id)
t = threading.Thread(target=test, args="8")
t.start()
t.join()
print(arr)