Building a Multithreaded TUI With Rust and Cursive (absolutely-vivid.srht.site)
from absolutely_vivid@programming.dev to rust@programming.dev on 17 Aug 2024 20:51
https://programming.dev/post/18254815

I wrote a quick blog post about a pattern I discovered while building TUI applications in Rust. It’s a bit unrefined, and I’m working on package to help make the pattern easier. Let me know what you think!

#rust

threaded - newest

Deebster@programming.dev on 31 Aug 2024 01:53 collapse

I’m of the belief that spawning threads on demand is an anti-pattern; threads should spawn on program startup, and sleep until they have work to do.

Hmm, I need to think on this to decide whether I agree. What’s your reasoning for this opinion? Is it just based on lower latency, or is it more of an architectural/correctness thing?

absolutely_vivid@programming.dev on 03 Apr 2025 04:18 collapse

Oh hi, I forgot to reply to this!

My reasoning was mostly “I read it somewhere when I started coding and then didn’t do much with threads” to be honest. Not great reasoning there. But modeling the interactions between a user, UI thread, and work thread made it a lot easier to organize my code and create a good separation of concerns; the UI thread handles interface updates and dispatching events, and the worker thread works. Honestly that code organization was the biggest advantage I got out of doing things this way, and I wish I’d emphasized that more in the blog post.