Enabling Multi-threading in Heterogeneous Quantum-Classical Programming Models