简体   繁体   中英

What is execution context in Scala?

I am new to Scala, and was trying to use some parallel constructs( Future in particular).

I found there is an implicit parameter of type ExecutionContext . IMO, it is something similar to(and maybe more abstract than) the concept of thread pool. I have tried to learn it through documentation , but I cannot find any clear and detailed introduction about it.

Could anyone please explain what exactly execution context is in Scala? And what is the purpose of introducing execution context to the language?

The basic idea is pretty simple: you have a callback that's going to be executed at some point. On what thread will it be executed? The current one? A new one? One from a pool? That's for the execution context to decide. The default one ( ExecutionContext.global ) uses threads from a global pool (with a number of threads determined by how many CPU cores you have).

In other circumstances, you might want to use a different context. For example, Akka actors can use their dispatcher as an execution context.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM