I would agree about adding concurrency and parallelism; but threading is very much a WorseIsBetter approach, which I certainly wouldn't like to use directly.
Co-routines or futures would seem a better fit for Lispy semantics. Actors seem too different and heavyweight, but I'd still prefer them to threading!
What is the aim?
Edit: I could see some things like syntax highlighting being a benefit. Though, I somewhat expect those to already be moving to lsp tricks. Layout, in general, makes sense to be a bit more responsive. But I'm not clear how general threading helps with that.
Edit2: are there good benchmarks for emacs to look at and play with?
But there are a lot of various smaller things in Emacs and elisp module ecosystem that would benefit from being able to run off the main thread. Emacs performance is fighting death by a thousand cuts, with almost everything being tied to the main thread (despite async features being used to pretend it's not).
--
I would guess Eww would have a similar issue, although I've never been able to get it to work (I use emacs-w3m, which has a separate process).
I've found some programming modes to be very slow and prone to freezing; most noticably Scala using Metals (which uses lsp).
That said, valid points. I am curious to benchmark parts of emacs now. (I turned off most programming features, since most of my code is remote and the network at home kills me.)
For Gnus it was using the built-in fetchers like nnrss, which would block the Emacs process until downloads finished. Using a cron job to fetch RSS feeds avoided this, but it would still take a while to check for updates even from local files. This was around 2012, so Gnus might have improved since.
FYI my current setup is described at http://chriswarbo.net/blog/2017-01-14-rss_to_maildir.html
Most of the Emacs code I've seen that spawns a process spawns a short shell script: no custom binary needed.
Wish something be done about proper threading support, but I understand it's a herculean task at this point.
(For those unfamiliar, GccEmacs is a parallel branch of Emacs that uses libgccjit to compile ELisp straight to native code. It does it transparently - compiling in the background and then substituting bytecode-compiled functions for native-compiled.)