In Tcl-land, we often discourage use of threads, for reasons documented elsewhere [explain]. Here's an example of how to think about design involving threads:
Briefly, Tcl applications need threads when they rely on long-running external resources, like database look-up or communications with physical devices [references]. Even in the latter case, though, there are a number of alternatives: