官术网_书友最值得收藏!

  • 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.
主站蜘蛛池模板: 天津市| 陆河县| 安顺市| 杭锦旗| 克什克腾旗| 松溪县| 柳林县| 碌曲县| 临湘市| 江阴市| 澎湖县| 巴南区| 蛟河市| 敖汉旗| 邢台县| 济南市| 于都县| 台湾省| 宁陵县| 噶尔县| 明星| 林口县| 孟州市| 凤翔县| 贡觉县| 广宗县| 二连浩特市| 米易县| 县级市| 武穴市| 剑阁县| 界首市| 方正县| 平乡县| 澄江县| 屏东县| 石首市| 平谷区| 南江县| 涿鹿县| 湄潭县|