
Tokio & Async I/O
Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async I/O ไฟล์/เครือข่าย
1บทบาทหลักของ runtime Tokio ในแอปพลิเคชัน Rust แบบ asynchronous คืออะไร?
บทบาทหลักของ runtime Tokio ในแอปพลิเคชัน Rust แบบ asynchronous คืออะไร?
คำตอบ
Runtime Tokio มี executor ที่ทำการ poll futures จนกว่าจะเสร็จสมบูรณ์ นอกจากนี้ยังจัดการ scheduler แบบ multi-thread (โดยค่าเริ่มต้น) เพื่อกระจาย task ไปยังหลาย OS thread รวมถึง reactor สำหรับการดำเนินการ I/O แบบ asynchronous หากไม่มี runtime futures ของ Rust จะไม่ทำอะไรเลยเพราะเป็น lazy โดยค่าเริ่มต้น
2จะเริ่มต้น runtime Tokio ด้วย macro #[tokio::main] ได้อย่างไร?
จะเริ่มต้น runtime Tokio ด้วย macro #[tokio::main] ได้อย่างไร?
คำตอบ
Macro #[tokio::main] แปลงฟังก์ชัน async main() ให้เป็นจุดเริ่มต้นแบบ synchronous ที่สร้าง runtime Tokio แบบ multi-thread และเรียกใช้ฟังก์ชัน async มาโครนี้สร้าง boilerplate ที่จำเป็นสำหรับการสร้าง runtime และ block จนกว่า future หลักจะเสร็จสมบูรณ์โดยอัตโนมัติ
3ความแตกต่างระหว่าง #[tokio::main] และ #[tokio::main(flavor = "current_thread")] คืออะไร?
ความแตกต่างระหว่าง #[tokio::main] และ #[tokio::main(flavor = "current_thread")] คืออะไร?
คำตอบ
โดยค่าเริ่มต้น #[tokio::main] จะสร้าง runtime แบบ multi-thread ที่กระจาย task ไปยัง pool ของ worker thread เมื่อใช้ flavor = "current_thread" runtime จะรัน task ทั้งหมดบน thread หลักเท่านั้น ซึ่งมีประโยชน์สำหรับการทดสอบ แอปพลิเคชันที่เรียบง่าย หรือเมื่อต้องหลีกเลี่ยงการแชร์ข้อมูลระหว่าง thread
tokio::spawn() ทำอะไรและคืนค่าเป็นชนิดข้อมูลใด?
ทำไม future ที่ส่งเข้า tokio::spawn() จึงต้องเป็น 'static?
+19 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Rust อื่นๆ
พื้นฐาน Rust
Ownership & Borrowing
Structs & Enums
การจัดการข้อผิดพลาด
คอลเลกชัน
โมดูลและแพ็กเกจ
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
มาโคร
Serde และการ Serialization
Unsafe Rust
Trait ขั้นสูง
Lifetime ขั้นสูง
Type System
การเพิ่มประสิทธิภาพ
Memory Management
Web Frameworks
Database Integration
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี