<?xml version="1.0" encoding="UTF-8" ?>
<rss
    version="2.0"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:webfeeds="http://webfeeds.org/rss/1.0"
    xmlns:media="http://search.yahoo.com/mrss/"
    >
    <channel>
        <title>Coroutine Tag - Viblo</title>
        <link>https://viblo.asia/rss</link>
        <description><![CDATA[Free service for technical knowledge sharing]]></description>
        <atom:link href="https://viblo.asia/rss/tags/coroutine.rss" rel="self"></atom:link>
                <copyright>Sun* Inc.</copyright>
                                                <webfeeds:logo>https://viblo.asia/logo_full.svg</webfeeds:logo>
        <image>
            <url>https://viblo.asia/logo_full.svg</url>
            <title>Coroutine Tag - Viblo</title>
            <link>https://viblo.asia/rss</link>
        </image>
                                <language>vi-vn</language>
        <lastBuildDate>2026-08-12T03:01:55+07:00</lastBuildDate>
                <item>
            <title><![CDATA[Kotlin Flow cheat sheet phần 2: Flow]]></title>
                        <link>https://viblo.asia/p/kotlin-flow-cheat-sheet-phan-2-flow-Yym40YGoJ91</link>
            <guid isPermaLink="true">https://viblo.asia/p/kotlin-flow-cheat-sheet-phan-2-flow-Yym40YGoJ91</guid>
            <description><![CDATA[Tiếp nối serie Kotlin cheat sheet, chúng ta cùng đi đến với cheat sheet tiếp theo dành cho Flow.

Kotlin Flow là một API mạnh mẽ giúp quản lý luồng dữ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Henry Techie</dc:creator>
            <pubDate>2024-08-18 17:44:55</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kotlin Flow cheat sheet phần 1: Channel]]></title>
                        <link>https://viblo.asia/p/kotlin-flow-cheat-sheet-phan-1-channel-2oKLnno1LQO</link>
            <guid isPermaLink="true">https://viblo.asia/p/kotlin-flow-cheat-sheet-phan-1-channel-2oKLnno1LQO</guid>
            <description><![CDATA[Sau khi làm việc với Kotlin Flows một thời gian, có thể bạn đã quen với các khái niệm cơ bản. Nhưng nếu chưa bao giờ sử dụng Channel, bạn sẽ không biế...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Henry Techie</dc:creator>
            <pubDate>2024-08-18 16:44:13</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kotlin Coroutines cheat sheet nâng cao dành cho Android Engineer]]></title>
                        <link>https://viblo.asia/p/kotlin-coroutines-cheat-sheet-nang-cao-danh-cho-android-engineer-0gdJzDggVz5</link>
            <guid isPermaLink="true">https://viblo.asia/p/kotlin-coroutines-cheat-sheet-nang-cao-danh-cho-android-engineer-0gdJzDggVz5</guid>
            <description><![CDATA[Sau khi làm việc với Kotlin Coroutines một thời gian, có thể anh em đã quen với các khái niệm cơ bản như suspend function và các hàm launch, async...,...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Henry Techie</dc:creator>
            <pubDate>2024-08-12 01:29:49</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[suspend function trung tâm trong coroutine]]></title>
                        <link>https://viblo.asia/p/suspend-function-trung-tam-trong-coroutine-W13VMoAGJY7</link>
            <guid isPermaLink="true">https://viblo.asia/p/suspend-function-trung-tam-trong-coroutine-W13VMoAGJY7</guid>
            <description><![CDATA[Đối với 1 lập trình viên Mobile nói chung, và Android nói riêng, trước đây đối với mình, RxJava, RxKotlin, RxAndroid nói chung Rx style và reactive là...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ChungHA</dc:creator>
            <pubDate>2024-02-08 00:54:45</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutine và Bài toán nhiều Task vụ]]></title>
                        <link>https://viblo.asia/p/coroutine-va-bai-toan-nhieu-task-vu-n1j4lNPlLwl</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutine-va-bai-toan-nhieu-task-vu-n1j4lNPlLwl</guid>
            <description><![CDATA[Chào mọi người. Trong xử lý lập trình bất đồng bộ, mọi người rất hay gặp phải tình huống xử lý nhiều task vụ cùng một lúc, hoặc các task vụ xử lý lần ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phong Phung Ngoc</dc:creator>
            <pubDate>2023-06-21 00:21:46</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[Learn with Bui] Viết code xử lý bất đồng bộ sử dụng asyncio trong python]]></title>
                        <link>https://viblo.asia/p/learn-with-bui-viet-code-xu-ly-bat-dong-bo-su-dung-asyncio-trong-python-W13VMe1GVY7</link>
            <guid isPermaLink="true">https://viblo.asia/p/learn-with-bui-viet-code-xu-ly-bat-dong-bo-su-dung-asyncio-trong-python-W13VMe1GVY7</guid>
            <description><![CDATA[Who am I ?

Hello các bạn, mình là Bui - một lập trình viên có 3 năm kinh nghiệm làm việc trong lĩnh vực phát triển phần mềm. Khoảng thời gian không d...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ngọt Bùi</dc:creator>
            <pubDate>2023-05-30 01:13:36</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Làm quen với Coroutine trong lập trình Android]]></title>
                        <link>https://viblo.asia/p/lam-quen-voi-coroutine-trong-lap-trinh-android-oOVlYJ2r58W</link>
            <guid isPermaLink="true">https://viblo.asia/p/lam-quen-voi-coroutine-trong-lap-trinh-android-oOVlYJ2r58W</guid>
            <description><![CDATA[Xử lý bất đồng bộ là một kỹ thuật mà lập trình viên mobile nào cũng cần phải biết. Việc xử lý bất đồng bộ giúp ứng dụng của chúng ta không bị Block UI...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tran Manh Hung</dc:creator>
            <pubDate>2021-09-12 21:29:51</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Flow coroutine với Android]]></title>
                        <link>https://viblo.asia/p/flow-coroutine-voi-android-Az45b06zZxY</link>
            <guid isPermaLink="true">https://viblo.asia/p/flow-coroutine-voi-android-Az45b06zZxY</guid>
            <description><![CDATA[Suspend function bất đồng bộ trả về 1 giá trị, vậy làm thế nào để có thể trả về nhiều giá trị bất đồng bộ???

1. Định nghĩa

- Flow được xây dựng trên...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Duong Thai Minh</dc:creator>
            <pubDate>2021-08-14 01:57:49</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Couroutines: Những thứ đầu tiên (Part 1)]]></title>
                        <link>https://viblo.asia/p/couroutines-nhung-thu-dau-tien-part-1-bJzKmrNYZ9N</link>
            <guid isPermaLink="true">https://viblo.asia/p/couroutines-nhung-thu-dau-tien-part-1-bJzKmrNYZ9N</guid>
            <description><![CDATA[Loạt bài đăng trên blog này đi sâu vào vấn đề Cancellation và Exceptions trong Coroutines. Cancellation là rất quan trọng để tránh làm nhiều việc hơn ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thành Lê</dc:creator>
            <pubDate>2021-08-06 15:27:40</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tổng quan về Kotlin Coroutines trong Android]]></title>
                        <link>https://viblo.asia/p/tong-quan-ve-kotlin-coroutines-trong-android-WAyK8JkmlxX</link>
            <guid isPermaLink="true">https://viblo.asia/p/tong-quan-ve-kotlin-coroutines-trong-android-WAyK8JkmlxX</guid>
            <description><![CDATA[Giới thiệu
Coroutines xây dựng dựa trên các chức năng thông thường bằng cách thêm hai hoạt động mới (ngoài việc invoke/call và return):
* suspend - tạ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">manh tuyen nham</dc:creator>
            <pubDate>2021-06-19 00:37:31</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutines và RxJava - Phần 5: Operators]]></title>
                        <link>https://viblo.asia/p/coroutines-va-rxjava-phan-5-operators-WAyK894mZxX</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutines-va-rxjava-phan-5-operators-WAyK894mZxX</guid>
            <description><![CDATA[Introduction
Trong bài viết này, chúng ta sẽ so sánh cách chuyển đổi các streams bằng cách sử dụng Operators.

Common Operators
Một số operators (toán...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hoang Van Tuan</dc:creator>
            <pubDate>2020-12-11 15:43:24</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutines và RxJava - Phần 4: Interop Library]]></title>
                        <link>https://viblo.asia/p/coroutines-va-rxjava-phan-4-interop-library-Qbq5Q9245D8</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutines-va-rxjava-phan-4-interop-library-Qbq5Q9245D8</guid>
            <description><![CDATA[Tại sao chúng ta cần thư viện Interop?
Câu trả lời rõ ràng nhất là khi bạn cần migrate từ thư viện này sang thư viện khác. Bạn không nên migrate một l...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hoang Van Tuan</dc:creator>
            <pubDate>2020-11-16 16:21:05</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tìm hiểu về Kotlin Coroutine]]></title>
                        <link>https://viblo.asia/p/tim-hieu-ve-kotlin-coroutine-Ljy5Vmj3lra</link>
            <guid isPermaLink="true">https://viblo.asia/p/tim-hieu-ve-kotlin-coroutine-Ljy5Vmj3lra</guid>
            <description><![CDATA[1. Coroutine là gì ?
Về cơ bản thì coroutines là 1 thuật toán có khả năng dừng (suspend) và tiếp tục (resume) việc thực thi code nằm trong nó mà không...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyen Thi Tu Yen</dc:creator>
            <pubDate>2021-05-05 17:07:37</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutines và RxJava - Phần 2: Cancelling Execution]]></title>
                        <link>https://viblo.asia/p/coroutines-va-rxjava-phan-2-cancelling-execution-OeVKBNWYKkW</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutines-va-rxjava-phan-2-cancelling-execution-OeVKBNWYKkW</guid>
            <description><![CDATA[Trong Phần 1, chúng ta đã học cách thực hiện các tác vụ tính toán nặng trong background. Điều gì sẽ xảy ra nếu chúng ta muốn ngắt luồng tính toán đó?
...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hoang Van Tuan</dc:creator>
            <pubDate>2020-10-12 13:56:50</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Làm Quen Coroutine Trong Android - Hướng Dẫn Cụ Thể]]></title>
                        <link>https://viblo.asia/p/lam-quen-coroutine-trong-android-huong-dan-cu-the-GrLZD0OgZk0</link>
            <guid isPermaLink="true">https://viblo.asia/p/lam-quen-coroutine-trong-android-huong-dan-cu-the-GrLZD0OgZk0</guid>
            <description><![CDATA[Mình viết bài này để chia sẻ tất tần tật hiểu biết của mình cũng như kiến thức mà mình tìm hiểu được về Coroutine.

Bài viết này được dùng từ một cách...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lam Nguyen</dc:creator>
            <pubDate>2020-10-04 20:10:51</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Lập trình không đồng bộ với Kotlin Coroutines]]></title>
                        <link>https://viblo.asia/p/lap-trinh-khong-dong-bo-voi-kotlin-coroutines-ORNZqkB850n</link>
            <guid isPermaLink="true">https://viblo.asia/p/lap-trinh-khong-dong-bo-voi-kotlin-coroutines-ORNZqkB850n</guid>
            <description><![CDATA[![](https://images.viblo.asia/c44fc4ff-1bfa-44e4-902b-9b733ce02551.png)


Một trong những tính năng thú vị của Kotlin là coroutines. Trong quá trình p...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phan Van Manh</dc:creator>
            <pubDate>2020-09-25 13:51:45</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Luồng bất đồng bộ trong Coroutine (Phần II)]]></title>
                        <link>https://viblo.asia/p/luong-bat-dong-bo-trong-coroutine-phan-ii-E375z4ERZGW</link>
            <guid isPermaLink="true">https://viblo.asia/p/luong-bat-dong-bo-trong-coroutine-phan-ii-E375z4ERZGW</guid>
            <description><![CDATA[Toán tử giới hạn kích thước
Các toán tử trung gian kích thước giới hạn như take hủy việc thực hiện của flow khi đạt tới giới hạn tương ứng. Việc hủy b...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Viet Anh</dc:creator>
            <pubDate>2020-09-22 12:56:40</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutines và RxJava - Phần 1: Xử lý bất đồng bộ]]></title>
                        <link>https://viblo.asia/p/coroutines-va-rxjava-phan-1-xu-ly-bat-dong-bo-ByEZkJd4KQ0</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutines-va-rxjava-phan-1-xu-ly-bat-dong-bo-ByEZkJd4KQ0</guid>
            <description><![CDATA[Giới thiệu
Trong loạt bài viết này, tôi sẽ so sánh Kotlin Coroutine và RxJava, bởi vì chúng đều giải quyết vấn đề chung trong phát triển Android: Xử l...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hoang Van Tuan</dc:creator>
            <pubDate>2020-09-11 09:42:32</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Android MVI with Kotlin Coroutine &amp; Flow]]></title>
                        <link>https://viblo.asia/p/android-mvi-with-kotlin-coroutine-flow-ByEZk2qYKQ0</link>
            <guid isPermaLink="true">https://viblo.asia/p/android-mvi-with-kotlin-coroutine-flow-ByEZk2qYKQ0</guid>
            <description><![CDATA[<img src="https://images.viblo.asia/2f295189-4aa2-43a3-8e12-5f156ba02d0f.jpeg" /><br />

MVI là một mô hình kiến trúc phổ biến trong việc thiết kế các...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">DanhDue ExOICTIF</dc:creator>
            <pubDate>2020-09-14 10:07:17</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Luồng bất đồng bộ trong Coroutine (Phần I)]]></title>
                        <link>https://viblo.asia/p/luong-bat-dong-bo-trong-coroutine-phan-i-YWOZraOyKQ0</link>
            <guid isPermaLink="true">https://viblo.asia/p/luong-bat-dong-bo-trong-coroutine-phan-i-YWOZraOyKQ0</guid>
            <description><![CDATA[Hàm suspend trả về một giá trị duy nhất 1 cách bất đồng bộ, nhưng làm cách nào chúng ta có thể trả về nhiều giá trị được tính toán bất đồng bộ? Đây là...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Viet Anh</dc:creator>
            <pubDate>2020-08-21 16:16:51</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutine Context và bộ điều phối (Dispatcher) (Phần II)]]></title>
                        <link>https://viblo.asia/p/coroutine-context-va-bo-dieu-phoi-dispatcher-phan-ii-GrLZDa8nlk0</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutine-context-va-bo-dieu-phoi-dispatcher-phan-ii-GrLZDa8nlk0</guid>
            <description><![CDATA[Children của một coroutine
Khi một coroutine được launch trong CoroutineScope của một coroutine khác, nó thừa kế context của coroutine đó thông qua Co...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Viet Anh</dc:creator>
            <pubDate>2020-07-20 13:14:30</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutine Context và bộ điều phối (Dispatcher) (Phần I)]]></title>
                        <link>https://viblo.asia/p/coroutine-context-va-bo-dieu-phoi-dispatcher-phan-i-4P856vm95Y3</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutine-context-va-bo-dieu-phoi-dispatcher-phan-i-4P856vm95Y3</guid>
            <description><![CDATA[Coroutine Context và Dispatcher
Các coroutines luôn thực thi trong một số ngữ cảnh được biểu thị bằng một giá trị của kiểu CoroutineContext , được xác...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Viet Anh</dc:creator>
            <pubDate>2020-06-21 21:34:59</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kết hợp các hàm suspend trong Coroutine]]></title>
                        <link>https://viblo.asia/p/ket-hop-cac-ham-suspend-trong-coroutine-3Q75wmn3ZWb</link>
            <guid isPermaLink="true">https://viblo.asia/p/ket-hop-cac-ham-suspend-trong-coroutine-3Q75wmn3ZWb</guid>
            <description><![CDATA[Kết hợp các hàm suspend
Phần này bao gồm các cách tiếp cận khác nhau để kết hớp các hàm suspend.

Mặc định là tuần tự
Giả sử rằng chúng ta có hai hàm ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Viet Anh</dc:creator>
            <pubDate>2020-05-21 13:46:55</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[Coroutine + Android] Phần 1: Sơ lược về coroutine]]></title>
                        <link>https://viblo.asia/p/coroutine-android-phan-1-so-luoc-ve-coroutine-Ljy5Vyyylra</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutine-android-phan-1-so-luoc-ve-coroutine-Ljy5Vyyylra</guid>
            <description><![CDATA[1, Lời mở đầu
* Xin chào mọi người, mình rất vui được chia sẻ cho mọi người 1 loại kiến thức mới mà mình đã từ tìm hiểu được.
* Lần này đó là gì ? Đó ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Duc Sang</dc:creator>
            <pubDate>2020-05-20 20:55:33</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 12: Channels (part 2 of 2)]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-12-channels-part-2-of-2-aWj5376156m</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-12-channels-part-2-of-2-aWj5376156m</guid>
            <description><![CDATA[1. SendChannel, ReceiveChannel
Ở bài trước, chúng ta đã biết Channel có 2 function chính là send() và receive(), ở bài này chúng ta sẽ biết thêm 2 int...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2020-05-19 20:41:43</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 11: Channels (part 1 of 2)]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-11-channels-part-1-of-2-bJzKmJpXZ9N</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-11-channels-part-1-of-2-bJzKmJpXZ9N</guid>
            <description><![CDATA[1. Giới thiệu về Channels
Channels khá giống với Flow mà mình đã giới thiệu trong phần 8, phần 9, phần 10 của series này. Nó cũng giúp chúng ta transf...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2020-04-18 15:07:22</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cơ bản về Coroutines (tiếp)]]></title>
                        <link>https://viblo.asia/p/co-ban-ve-coroutines-tiep-vyDZO1p75wj</link>
            <guid isPermaLink="true">https://viblo.asia/p/co-ban-ve-coroutines-tiep-vyDZO1p75wj</guid>
            <description><![CDATA[Tiếp bài trước

Scope builder
Ngoài những scope có sẵn được cung cấp bởi các builder khác nhau, có thể khai báo scope của riêng bạn bằng cách sử dụng ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Viet Anh</dc:creator>
            <pubDate>2020-03-20 16:56:47</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 10: Flow (part 3 of 3)]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-10-flow-part-3-of-3-aWj53G4o56m</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-10-flow-part-3-of-3-aWj53G4o56m</guid>
            <description><![CDATA[1. Flow Context
Code trong khối flow {...} chạy trên context của nguồn thu. Ví dụ:
Output:
Dễ hiểu, vì hàm collect (nguồn thu) được gọi bên trong khối...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2020-03-19 20:39:35</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 9: Flow (part 2 of 3)]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-9-flow-part-2-of-3-07LKXmX8ZV4</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-9-flow-part-2-of-3-07LKXmX8ZV4</guid>
            <description><![CDATA[1. Toán tử trong Flow
Nếu bạn chưa biết Flow là gì, bạn có thể tham khảo phần 1 của bài viết này tại đây. Bài viết này, mình sẽ tập trung khai thác sứ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2020-02-17 18:06:56</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Coroutines on Android (part I): Getting the background]]></title>
                        <link>https://viblo.asia/p/coroutines-on-android-part-i-getting-the-background-WAyK800eKxX</link>
            <guid isPermaLink="true">https://viblo.asia/p/coroutines-on-android-part-i-getting-the-background-WAyK800eKxX</guid>
            <description><![CDATA[Đây là một phần trong series nói về cách sử dụng Coroutines trong Android. Bài viết này tập trung vào Cách thức coroutines hoạt động và Các vấn đề mà ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyen Huu Tho</dc:creator>
            <pubDate>2020-01-13 08:17:46</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 8: Flow (part 1 of 3)]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-8-flow-part-1-of-3-bWrZnx695xw</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-8-flow-part-1-of-3-bWrZnx695xw</guid>
            <description><![CDATA[1. Giới thiệu Flow trong Kotlin Coroutine
Flow về cơ bản khá giống Sequences trong Kotlin nhưng khác ở chỗ Sequences xử lý đồng bộ còn Flow xử lý bất ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2020-01-05 18:45:13</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 7: Xử lý Exception trong Coroutine, Supervision Job &amp; Supervision Scope]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-7-xu-ly-exception-trong-coroutine-supervision-job-supervision-scope-naQZRDaG5vx</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-7-xu-ly-exception-trong-coroutine-supervision-job-supervision-scope-naQZRDaG5vx</guid>
            <description><![CDATA[1. Exception trong Kotlin Coroutine
Như chúng ta đã biết, có 2 coroutine builder là: launch { } và async { }. Cùng run các đoạn code này xem thử 2 bui...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2019-12-18 22:28:28</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 6: Coroutine Scope]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-6-coroutine-scope-aWj536n8l6m</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-6-coroutine-scope-aWj536n8l6m</guid>
            <description><![CDATA[1. CoroutineScope
Hãy tưởng tượng, khi bạn chạy 10 coroutine để thực thi 10 task trong 1 activity nào đó. Khi Activity đó bị destroy, các result của c...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2019-11-19 21:02:22</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 5: Async &amp; Await]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-5-async-await-naQZRxGm5vx</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-5-async-await-naQZRxGm5vx</guid>
            <description><![CDATA[1. Bài toán compose nhiều function
Giả sử bạn đang code 1 task cần call 2 API rồi sau đó cần compose lại ra 1 cục data để fill vào UI. Hoặc bài toán k...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2019-10-20 20:45:43</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 4: Job, Join, Cancellation and Timeouts]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-4-job-join-cancellation-and-timeouts-Do75463QZM6</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-4-job-join-cancellation-and-timeouts-Do75463QZM6</guid>
            <description><![CDATA[1. Job - một element trong coroutine context
Như chúng ta đã biết ở phần 3: Trong coroutine context có một element là Job giữ nhiệm vụ nắm giữ thông t...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2019-09-19 22:53:18</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Sử dụng ViewModelScope để giảm Boilerplate code với Coroutines]]></title>
                        <link>https://viblo.asia/p/su-dung-viewmodelscope-de-giam-boilerplate-code-voi-coroutines-aWj53e9eZ6m</link>
            <guid isPermaLink="true">https://viblo.asia/p/su-dung-viewmodelscope-de-giam-boilerplate-code-voi-coroutines-aWj53e9eZ6m</guid>
            <description><![CDATA[Scopes trong Kotlin Coroutines

Scopes (các phạm vi) trong Kotlin Coroutines vô cùng hữu dụng vì chúng ta cần phải huỷ bỏ các tác vụ nền ngay khi Acti...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phuc YNWA</dc:creator>
            <pubDate>2019-08-25 23:25:21</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Structured concurency]]></title>
                        <link>https://viblo.asia/p/structured-concurency-OeVKB3rQZkW</link>
            <guid isPermaLink="true">https://viblo.asia/p/structured-concurency-OeVKB3rQZkW</guid>
            <description><![CDATA[Kotlin coroutin đã chính thức được release và giới thiệu structed concurrency cho Kotlin couroutines.  Nó không chỉ là một tính năng- nó đánh dấu một ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thang Huy Hoang</dc:creator>
            <pubDate>2019-07-22 23:50:38</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 3: Coroutine Context và Dispatcher]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-3-coroutine-context-va-dispatcher-Qbq5QkDzZD8</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-3-coroutine-context-va-dispatcher-Qbq5QkDzZD8</guid>
            <description><![CDATA[1. Coroutine Context
Mỗi coroutine trong Kotlin đều có một context được thể hiện bằng một instance của interface CoroutineContext. Context này là một ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2019-07-20 18:34:56</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Cùng học Kotlin Coroutine, phần 2: Build first coroutine with Kotlin]]></title>
                        <link>https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-2-build-first-coroutine-with-kotlin-Do7544Ee5M6</link>
            <guid isPermaLink="true">https://viblo.asia/p/cung-hoc-kotlin-coroutine-phan-2-build-first-coroutine-with-kotlin-Do7544Ee5M6</guid>
            <description><![CDATA[1. Những điểm cần chú ý ở phần 1
Ở phần 1, chúng ta đã tìm hiểu về định nghĩa về coroutine. Mình xin note lại một vài điểm lưu ý như sau:

- Coroutine...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Thành Minh</dc:creator>
            <pubDate>2019-06-19 22:36:33</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Retrofit 2.6.0 và suspend fun cho Kotlin Coroutine]]></title>
                        <link>https://viblo.asia/p/retrofit-260-va-suspend-fun-cho-kotlin-coroutine-63vKjVLbK2R</link>
            <guid isPermaLink="true">https://viblo.asia/p/retrofit-260-va-suspend-fun-cho-kotlin-coroutine-63vKjVLbK2R</guid>
            <description><![CDATA[Trước đây mình đã có bài giới thiệu cách kết hợp retrofit với coroutine:

https://viblo.asia/p/ket-hop-kotlin-coroutine-va-retrofit-trong-call-api-Az4...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dang Anh Quan</dc:creator>
            <pubDate>2019-06-11 17:42:37</pubDate>
                                                                                                        </item>
            </channel>
</rss>
