▲ | didibus 2 days ago | |
It's quite different, the way you model things, it's entirely different. Even though both are able to deliver highly concurrent computation. A process in Elixir has an id, state, and is sent messages to its address. The message are queued inside the process, and handled one at a time. One process can spawn another, and so on. It's more like white collar workers sending emails to each other. In core.async, a Process is anonymous, it doesn't have an id and doesn't have an address. You cannot send messages to it. Instead a process is more like a worker on an assembly line with conveyor belts. What matters are the conveyor belts and what's on them. Where things go from one belt to the next and what happens to the things as they flow through. You can have multiple workers working a belt and if something jams dependent belts stop. The belts are called Channels. |