当前位置:网站首页>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
边栏推荐
猜你喜欢

Xiaopeng P7 hit the guardrail and the airbag did not pop up. The official responded that the impact strength did not meet the ejection requirements

Vulnhub narak

Wechat applet - basic content

Qt OpenGL 旋转、平移、缩放

Swagger

vulnhub之pyexp

Ripper of vulnhub

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

Vulnhub's presidential

Solve msvcp120d DLL and msvcr120d DLL missing
随机推荐
实现验证码验证
Ripper of vulnhub
CGroup introduction
Qt OpenGL相机的使用
Qt+vtk+occt reading iges/step model
[MySQL special] read lock and write lock
Shutter: about inheritedwidget
在网上炒股开户可以吗?资金安全吗?
Vulnhub geminiinc V2
[official MySQL document] deadlock
抓包整理外篇fiddler———— 会话栏与过滤器[二]
Ripper of vulnhub
Flutter: about monitoring on flutter applications
OpenGL index cache object EBO and lineweight mode
Dart: about grpc (I)
Shutter: add gradient stroke to font
MySQL time zone solution
DEJA_ Vu3d - cesium feature set 053 underground mode effect
vulnhub之Ripper
(数据库提权——Redis)Redis未授权访问漏洞总结