Coroutine là gì?
Thuộc phần Logic và luồng chương trình trong hành trình Lua của Coddy. Bài học 48 trên 54.
Hãy nghĩ về việc chơi trò chơi điện tử. Bạn có thể tạm dừng bất cứ lúc nào, đi làm việc khác rồi quay lại tiếp tục đúng từ chỗ đã dừng. Coroutine trong Lua hoạt động theo cách tương tự.
Coroutine giống như một hàm đặc biệt có thể tự tạm dừng giữa chừng khi đang chạy, rồi tiếp tục sau đó từ đúng điểm đã tạm dừng. Khác với các hàm thông thường chạy liên tục từ đầu đến cuối, coroutine cho bạn quyền kiểm soát thời điểm chúng tạm dừng và tiếp tục.
Khả năng này cho phép thực hiện một việc gọi là đa nhiệm hợp tác. Thay vì chạy nhiều tác vụ cùng một lúc, coroutine cho phép bạn tự nguyện chuyển đổi giữa các tác vụ khác nhau.
Một coroutine chạy một lúc rồi tự tạm dừng, coroutine khác tiếp tục chạy, cứ thế nối tiếp. Mỗi coroutine phối hợp bằng cách quyết định khi nào trả quyền điều khiển.
Coroutine rất hữu ích khi bạn cần chia nhỏ các thao tác chạy trong thời gian dài, quản lý hệ thống theo lượt hoặc tạo các chuỗi cần ghi nhớ trạng thái giữa những lần gọi. Trong các bài học tiếp theo, bạn sẽ học cách tạo, tạm dừng và tiếp tục coroutine trong Lua.
Tự làm thử
Bài học này không có thử thách code.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
2Các hàm khác của thư viện table
table.concat()Tạo table và unpack()table.sort()Sắp xếp tùy chỉnh bằng hàmÔn tập: Bảng điểm cao5Dự án: Bộ máy trò chơi phiêu lưu bằng văn bản
Thiết lập dự án: Căn phòngLiên kết các phòng3Các khái niệm nâng cao về hàm
Trả về nhiều giá trịHàm nhận số lượng đối số linh hoạt (...)Hàm là giá trị hạng nhấtHàm ẩn danhClosure là gì?Ôn tập: bộ xử lý sự kiện đơn giản9Coroutine cho người mới bắt đầu
Coroutine là gì?Tạo và tiếp tục coroutineTạm dừng bằng coroutine.yield()Resume và yieldKiểm tra trạng thái coroutineÔn tập: trình tạo sốÔn tập: phép toán vectơTự luyện tập: Trình biên dịch Lua online