Em đi phỏng vấn gặp câu hỏi thế này:
“Em hãy cho biết sự khác nhau giữa Asyntask và Thread?”
Em dừng hình luôn câu này. Mong các bác chỉ giáo ạ
Em đi phỏng vấn gặp câu hỏi thế này:
“Em hãy cho biết sự khác nhau giữa Asyntask và Thread?”
Em dừng hình luôn câu này. Mong các bác chỉ giáo ạ
Hi Đức,
Giả sử em đang làm việc cho một nhà hàng.
Mỗi nhân viên trong nhà hàng sẽ là một Thread, và có thể làm việc đồng thời với những người khác.
Tuy nhiên, trong nhà hàng có một người rất quan trọng, đó là bếp trưởng.
Bếp trưởng là người thao tác chính lên món ăn và định hình món ăn tới khách hàng.
Trong lúc nấu món mì quảng, bếp trưởng cần thêm bánh tráng nướng.
Nhưng, bếp trưởng sẽ không đi nướng bánh tráng, mà ông ấy sẽ nói với phụ bếp.
Rồi phụ bếp sẽ đi nướng bánh tráng.
Trong app của mình cũng vậy, có 1 Thead rất quan trọng đó là Main Thread hay UI Thread, đóng vai trò như bếp trưởng.
Với những công việc dài hạn, nếu thực hiện nó trên UI Thread, app có thể bị lag hoặc lỗi Application Not Responding.
AsyncTask sẽ giúp UI Thread làm những việc dài hạn, ví dụ như đưa bánh tráng cho một phụ bếp (background thread) để nướng.
Sau khi phụ bếp nướng xong, phụ bếp đưa bánh tráng cho AsyncTask.
Và, AsyncTask giao bánh tráng cho bếp trưởng UI Thread.
Như vậy, mỗi Thread giống như một nhân viên trong nhà hàng.
Còn, AsyncTask là một phương tiện nhận yêu cầu từ main thread, giao việc cho 1 thread khác, và sau khi hoàn thành, giao lại sản phẩm cho main thread.
Em tham khảo thêm ở đây nghen: https://m.facebook.com/story.php?story_fbid=186195775647319&id=186154998984730
phần trả lời dễ hiểu quá.
Thanks anh nhiều nhiều nhé!
Set solutions cho câu trả lời đi !