On most systems, you can implement concurrency using either threads or processes, where the main difference between the two is that threads share memory and processes don’t. Modern web browsers support concurrency through the Web Workers API. Although Web Workers are by default closer to a multi-process model, when used with WebAssembly you can opt-in to a more thread-like experience. Just like in
![Threads and messages with Rust and WebAssembly](https://cdn-ak-scissors.b.st-hatena.com/image/square/9cf0bb327a0c6ad2a936616c0c0a3742163532a8/height=288;version=1;width=512/https%3A%2F%2Ftweag.io%2Flogo.png)