IBM PL/I(F) included support for multithreading (called multitasking) in the late 1960s, and this was continued in the Optimizing Compiler and later versions.
Many programming languages support threading in some capacity.