Многопоточный параллелизм между двумя потоками

#python #multithreading #concurrency #block

#python #многопоточность #параллелизм #блок

Вопрос:

Я пытаюсь создать два потока. Один для записи порядковых чисел (1,2,3,4,5,6,7,8,9,10) (по одному) во внешнюю переменную ( config1.variable1 ) и другой поток для считывания этих значений (по одному) из переменной config.variable1 .

У меня есть два файла, один для кода, а другой с именем config config1.variable . Я справляюсь с проблемой параллелизма с acquire() помощью и release() , но я ожидаю, что поток чтения будет писать на экране: 1,2,3,4,5,6,7,8,9,10 и никакого другого порядка чисел, такого как 1,3,2,4,6,5,7,8,9,10 , но это не работает.

Код такой:

 import threading
import config1
import time


def function1():

    contador = 0
    hilo_actual = threading.current_thread().getName()
    while contador < 20:
        print('waiting for block', hilo_actual)
        block.acquire()
        try:
            contador = contador   1
            config1.variable1= config1.variable1   1

            print('bloqued by', hilo_actual, contador)
            print('config1.variable1', config1.variable1)
            time.sleep(5)

        finally:
            print('releasing block by', hilo_actual)
            block.release()

def function2():

    contador = 0
    hilo_actual = threading.current_thread().getName()
    while contador < 20:
        print('waiting for block', hilo_actual)
        block.acquire()
        try:
            contador = contador   1
            time.sleep(1)
            print('config1.variable1 in thread 2', config1.variable1)

        finally:
            print('release blocking by', hilo_actual)
            block.release()

block = threading.Lock()
thread1 = threading.Thread(name='h1', target=function1)
thread2 = threading.Thread(name='h2', target=function2)
thread1.start()
thread2.start()
 

Комментарии:

1. Где config1?

2. config1 — это файл в том же каталоге. В этом файле есть одна переменная с именем variable1.