joethemow
joethemow

Reputation: 1773

Spawning 10,000 threads doesn't seem like the right approach, alternative ideas?

I am trying to simulate a decentralized system, but having trouble simulating given the real-life parameters.

Real-world:

Simulation:

Is spawning a thread per module the right approach? In theory, this seems like the right approach but in practice, it hits limitations at around 1,000 threads.

Upvotes: 0

Views: 188

Answers (1)

rascio
rascio

Reputation: 9279

Your context perfectly match with the actor model
https://en.wikipedia.org/wiki/Actor_model
Explaining it through a response is impossible, start from the wiki link and search for some implementation in the language your are using, but it does what you need, you can simulate millions of "isolated states" and manage the concurrency of their mutations using very few resources (you should be able to reach 1K actors with very few threads, maybe also 2).

Also, nowadays a lot of languages offers (in their flavour) a version of lightweight threads that can be used to reduce the number of real threads used (goroutine, kotlin coroutines, java fibers, etc..)

Upvotes: 5

Related Questions