• RustyNova@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    11 months ago

    Honestly I can’t wrap my head how to effectively put computation into a thread, even with Tokio.

    All I want is something like rayon where you got a task queue and you just yeet tasks into a free thread, and await when you actually need it

    Might be too much JS/TS influence on me, or that I can’t find a tutorial that would explain in a way that clicks for me

    • Spaz@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      11 months ago

      Tokio specifically says not to use it for CPU intensive tasks and rayon would be better for this: https://tokio.rs/tokio/tutorial

      Speeding up CPU-bound computations by running them in parallel on several threads. Tokio is designed for IO-bound applications where each individual task spends most of its time waiting for IO. If the only thing your application does is run computations in parallel, you should be using rayon. That said, it is still possible to “mix & match” if you need to do both. See this blog post for a practical example

    • PlexSheep@feddit.de
      link
      fedilink
      arrow-up
      1
      ·
      11 months ago

      Tokio is for concurrency, not parallelism. Use it for IO stuff. They say rayon is good for that, but I haven’t used that. If you just want something simple, I’d recommend working with threadpool.