None of the command-line shells that I am aware of are multithreaded. In particular, even those shells that support "job control" (Control-Z, `bg`, `fg`, etc) do so via facilities (namely, `fork`, `exec`, signals, pipes and PTYs) that predate Unix *threads*.

Nor is Emacs multithreaded even though it is able to "do many things at the same time". (Again, it forks and execs external programs a lot and uses signals, pipes and PTYs to communicate with those external programs.)

My question is, Does the dominant implementation of the X11 protocol (X.org) use Unix threads -- in either the server or any of the client libraries?

If so, approximately when did it (or its ancestor, XFree86, or XFree86's ancestor) start doing so?