当前位置:网站首页>2.6 preliminary cognition of synergetic couroutines
2.6 preliminary cognition of synergetic couroutines
2022-07-03 12:14:00 【schr03p】
coroutines Couroutines My initial understanding
One 、 What is? Kotlin coroutines
coroutines (Coroutine) Is the collaborative program , and Kotlin Synergy is a process based on Java Thread API Packaged toolkit , Help us easily write complex concurrent code
kotlin Compared with thread pool , There is no performance advantage
Non blocking suspension is nothing special ,java Sub threads are also non blocking
If you are familiar with Rxjava, Compare the process again , You will find that the synergy ratio Rxjava It works
Solve the problem of callback to hell
Two 、Coroutines The advantages of 、 characteristic
Light weight
The essence , Convenient for multi-threaded development
Thread pool
Network library support , Light and elegant
3、 ... and 、 Quick view of knowledge points
Common coprocessing functions
| Function name | Brief features |
|---|---|
| runBlocking:T | Internal coordination process started , Meeting Blocking Current thread , until block The execution of the coordination process in the end . Common methods of calling coprocessor functions |
| launch:Job | The most commonly used way to start the process ; return Job object , operational Job; It won't block Current calling thread ; |
| async:Deferred | Be similar to launch, Start asynchronous ; Can be used for multiple concurrency ;await Consolidated results |
CoroutineContext
Dispatchers.Main、
Dispatchers.IO、Dispatchers.default( Execute... In the process pool )
Dispatchers.Unconfined
LauncherMode
Mode Value default Default , Execute the program immediately lazy Execute when needed atomic Execute now , Operation atomization , Cannot cancel before starting undispatched Execute immediately on the current thread , Until the first one suspend call suspend function
suspend function Will bring the whole coroutines Hang up , Not just this suspend function , That is to say a coroutines There are multiple Suspend function when , They are executed sequentially
resume
The call stack
Scope
UI
ViewModel
Four 、 The way to deal with asynchrony
Threads
Commonly used , Simple and convenient
resource consumption
The number is limited
Platform support (JS There is no thread )
Inconvenient to debug
Callback
Hierarchical call
Multiple nesting
Error handling is troublesome
Futures、 Promise
Programming elegance
Change the programming method , Such as exception handling and circulation , Invalid in
Api Study , Platform differences
Return type qualification promise
Exception handling is complex
Rx Reactive expansion
The design idea of observable flow , Elegant and convenient
The learning curve
Api
Behavior is hard to estimate
coroutines
studies of the Book of Changes 、 Easy to use
jetpack,kotlin,aac,scope/vvm
Learning cost
边栏推荐
- C language improvement article (wchar_t) character type
- Flutter: self study system
- 102. Sequence traversal of binary tree
- Symlink(): solution to protocol error in PHP artisan storage:link on win10
- Wechat applet development - page Jump transfer parameters
- Dart: about grpc (I)
- ES6 standard
- DNS multi-point deployment IP anycast+bgp actual combat analysis
- CGroup introduction
- Integer string int mutual conversion
猜你喜欢

使用BLoC 构建 Flutter的页面实例

Solution to the second weekly test of ACM intensive training of Hunan Institute of technology in 2022

Colleagues wrote a responsibility chain model, with countless bugs

Swagger

【mysql官方文档】死锁

QT OpenGL texture map

Fluent: Engine Architecture

Socket TCP for network communication (I)

shardingSphere分库分表<3>

Quantitative calculation research
随机推荐
Solution to the second weekly test of ACM intensive training of Hunan Institute of technology in 2022
DEJA_VU3D - Cesium功能集 之 054-模拟火箭发射全过程
Integer int compare size
vulnhub之tomato(西红柿)
"Jianzhi offer 04" two-dimensional array search
Simple factory and factory method mode
Shardingsphere sub database and sub table < 3 >
Dart: about Libraries
Concurrent programming - singleton
Redis notes 01: Introduction
QT OpenGL texture map
OpenGL draws colored triangles
DEJA_ Vu3d - cesium feature set 053 underground mode effect
4000 word super detailed pointer
242. Effective letter heteronyms
typeScript
Itext7 uses iexternalsignature container for signature and signature verification
Dart: about grpc (I)
OpenGL 索引缓存对象EBO和线宽模式
MCDF Experiment 1