@@ -11,38 +11,25 @@ fun main() = runBlocking {
1111 println("Unconfined : running in thread ${Thread.currentThread().name}")
1212 longTask()
1313 }*/
14- /* launch(Dispatchers.Default) { // will get dispatched to DefaultDispatcher
15- println("Default : running in thread ${Thread.currentThread().name}")
16- longTask()
14+ /* repeat(1000) {
15+ val dispatcher = Dispatchers.Default.limitedParallelism(3)
16+ launch(dispatcher) {
17+ // launch(Dispatchers.Default) { // will get dispatched to DefaultDispatcher
18+ println("Default : running in thread ${Thread.currentThread().name}")
19+ longTask()
20+ }
1721 }*/
18- launch(newSingleThreadContext(" MyThread" )) { // will get its own new thread
22+ launch(newSingleThreadContext(" MyThread" )) { // will get its own new thread
1923 println (" newSingleThreadContext: running in thread ${Thread .currentThread().name} " )
2024 longTask()
2125 }
2226 println (" completed tasks" )
2327}
2428
25- // Concurrently executes both sections
26- /* suspend fun longTask() {
27- launch { // context of the parent, main runBlocking coroutine
28- println("main runBlocking : I'm working in thread ${Thread.currentThread().name}")
29- longTask()
30- }
31- launch(Dispatchers.Unconfined) { // not confined -- will work with main thread
32- println("Unconfined : I'm working in thread ${Thread.currentThread().name}")
33- }
34- launch(Dispatchers.Default) { // will get dispatched to DefaultDispatcher
35- println("Default : I'm working in thread ${Thread.currentThread().name}")
36- }
37- launch(newSingleThreadContext("MyOwnThread")) { // will get its own new thread
38- println("newSingleThreadContext: I'm working in thread ${Thread.currentThread().name}")
39- }
40- println("completed task1 and task2")
41- }*/
4229
4330suspend fun longTask (){
44- println (" executing longTask on...: ${Thread .currentThread().name} " )
31+ // println("executing longTask on...: ${Thread.currentThread().name}")
4532 delay(1000 )
46- println (" longTask ends on thread ...: ${Thread .currentThread().name} " )
33+ // println("longTask ends on thread ...: ${Thread.currentThread().name}")
4734}
4835
0 commit comments