VideoCapture Opens video sources by multi Thread

I try to open two rtsp streams with two seperate threads,each thread execute the same function of connecting a rtsp stream ,and calculating the consuming time . I think I could get roughly equivalent spending time , but actually , it seems to be a accumulation. For example,thread 1 spends 1.3 seconds,thread 2 spends 2.7 seconds, and thread 3 spends 4.1 seconds and so on . It seems to be a a serial operation, not parallel work . I guess there must be something like synchronization mechanisms in VideoCapture that I didn’t know . can anybody explain it for me ? Thanks very much !

def action2(name, source_address):
        start = time.time()
        cap = cv2.VideoCapture(source_address)
        print(f'{name}cost {time.time() - start}')
    except Exception as e:
        return None

if __name__ == '__main__':
    source_address = f'rtsp://user:passwd@ip:port/live'
    source_address2 = f'rtsp://user:passwd@ip:port/live'
    action2('thread1', source_address)
    action2('thread2', source_address2)

output :

thread1 cost 1.332
thread2 cost 2.834

Opening the stream is serial but processing is not. See this issue