- Learning Concurrency in Kotlin
- Miguel Angel Castiblanco Torres
- 192字
- 2021-08-05 10:46:44
Leveraged
Creating and managing threads is one of the difficult parts of writing concurrent code in many languages. As seen before, it's important to know when to create a thread, and almost as important to know how many threads are optimal. It's also important to have threads dedicated to I/O operations, while also having threads to tackle CPU-bound operations. And communicating/syncing threads is a challenge in itself.
Kotlin has high-level functions and primitives that make it easier to implement concurrent code:
- To create a thread it's enough to call newSingleThreadContext(), a function that only takes the name of the thread. Once created, that thread can be used to run as many coroutines as needed.
- Creating a pool of threads is as easy, by calling newFixedThreadPoolContext() with the size and the name of the pool.
- CommonPool is a pool of threads optimal for CPU-bound operations. Its maximum size is the amount of cores in the machine minus one.
- The runtime will take charge of moving a coroutine to a different thread when needed .
- There are many primitives and techniques to communicate and synchronize coroutines, such as channels, mutexes, and thread confinement.
推薦閱讀
- HTML5+CSS3王者歸來
- Java語言程序設計
- 從零開始構建企業級RAG系統
- Raspberry Pi for Python Programmers Cookbook(Second Edition)
- PHP 7底層設計與源碼實現
- NativeScript for Angular Mobile Development
- Web全棧工程師的自我修養
- Lua程序設計(第4版)
- Windows Forensics Cookbook
- Visual Basic程序設計實踐教程
- TMS320LF240x芯片原理、設計及應用
- INSTANT Yii 1.1 Application Development Starter
- Rust游戲開發實戰
- R Data Science Essentials
- 分布式數據庫原理、架構與實踐