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!

  • Deebster@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    8 months ago

    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.devOP
      link
      fedilink
      arrow-up
      2
      ·
      11 days ago

      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.