Câu hỏi phỏng vấn Kotlin
Câu hỏi

Coroutine Scope là gì và nó khác với `Co...

Câu trả lời

Trong Kotlin, khi làm việc với coroutines, hai khái niệm quan trọng cần được hiểu rõ là Coroutine ScopeCoroutine Context. Mỗi khái niệm này đóng một vai trò riêng biệt trong việc quản lý và thực thi các coroutines.

Coroutine Scope

Coroutine Scope xác định phạm vi trong đó một coroutine được thực thi. Scope quản lý vòng đời của các coroutines chạy bên trong nó, đảm bảo rằng chúng không tiếp tục thực thi khi scope đã bị hủy. Mỗi coroutine khi được khởi chạy phải được khởi chạy trong một scope cụ thể.

  • Quản lý vòng đời: Coroutine scope liên kết vòng đời của các coroutines với vòng đời của ứng dụng hoặc thành phần ứng dụng (như Activity hoặc Fragment trong Android). Điều này giúp ngăn ngừa rò rỉ bộ nhớ và đảm bảo rằng các tác vụ không cần thiết được hủy khi không còn cần thiết.
  • Ví dụ về các loại scope: GlobalScope, lifecycleScope trong Android, viewModelScope trong Android ViewModel, v.v.

Coroutine Context

Coroutine Context là một tập hợp các thuộc tính khác nhau của coroutine, bao gồm dispatcher quyết định thread nào coroutine sẽ chạy trên, cũng như các thông tin khác như Job của coroutine và các elements khác như CoroutineName.

  • Dispatcher: Quyết định thread hoặc thread pool mà coroutine sẽ chạy. Ví dụ, Dispatchers.Main chạy trên main thread của UI trong Android, Dispatchers.IO dành cho I/O operations, Dispatchers.Default cho CPU-intensive tasks.
  • Job: Đại diện...
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Data class trong Kotlin là gì?

middle

Tại sao bạn sử dụng hàm apply trong Kotlin?

middle

Hàm suspend trong Kotlin là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào