Well Tcl expects you to use an interpreter for each thread and pass messages between them, which is fairly easy. In Tcl 8.6 you also have the option to use multiple coroutines within one interpreter.
This avoids the Global Interpreter Lock problem that plagues Python. How does Guile handle that?