
async/await
ฟังก์ชัน async, trait Future, runtime tokio, บล็อก async, ไวยากรณ์ .await, Streams, Pin<T>, การยกเลิก, รูปแบบ executor
1ฟังก์ชันที่ประกาศด้วยคีย์เวิร์ด async ใน Rust คืนค่าอะไร?
ฟังก์ชันที่ประกาศด้วยคีย์เวิร์ด async ใน Rust คืนค่าอะไร?
คำตอบ
ฟังก์ชัน async จะคืนค่าเป็น type ที่ implement trait Future โดยอัตโนมัติ คอมไพเลอร์จะแปลงเนื้อหาของฟังก์ชันให้เป็น state machine ที่ implement Future ค่าที่คืนกลับมาจะไม่ถูกคำนวณทันที แต่จะถูกคำนวณก็ต่อเมื่อ Future ถูกรอด้วย .await หรือถูกรันโดย runtime เท่านั้น
2บทบาทหลักของ trait Future ใน Rust คืออะไร?
บทบาทหลักของ trait Future ใน Rust คืออะไร?
คำตอบ
trait Future แทนการคำนวณแบบ asynchronous ที่อาจยังไม่เสร็จสิ้น เมธอด poll ของมันช่วยให้ executor ตรวจสอบได้ว่า Future พร้อมแล้ว (Poll::Ready) หรือยังต้องรอ (Poll::Pending) นี่คือกลไกพื้นฐานของการทำงานแบบ asynchronous ใน Rust ที่ทำให้เกิดการทำงานแบบ non-blocking และมีประสิทธิภาพ
3ทำไมจึงจำเป็นต้องมี runtime อย่าง tokio ในการรันโค้ด async ใน Rust?
ทำไมจึงจำเป็นต้องมี runtime อย่าง tokio ในการรันโค้ด async ใน Rust?
คำตอบ
Rust ไม่ได้รวม runtime แบบ asynchronous ไว้ในไลบรารีมาตรฐาน เพื่อให้ภาษามีความเรียบง่ายและให้สามารถเลือก runtime ได้ตามความต้องการ runtime อย่าง tokio จะจัดเตรียม executor ที่ poll Future, scheduler สำหรับจัดการ task และ I/O แบบ asynchronous หากไม่มี runtime, Future จะไม่มีวันถูกรันเลย
ความแตกต่างระหว่าง async block และ async function ใน Rust คืออะไร?
เกิดอะไรขึ้นเมื่อใช้ .await กับ Future ใน Rust?
+19 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Rust อื่นๆ
พื้นฐาน Rust
Ownership & Borrowing
Structs & Enums
การจัดการข้อผิดพลาด
คอลเลกชัน
โมดูลและแพ็กเกจ
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
Testing
Cargo & Ecosystem
Pattern Matching
มาโคร
Serde และการ Serialization
Unsafe Rust
Trait ขั้นสูง
Lifetime ขั้นสูง
Type System
Tokio & Async I/O
การเพิ่มประสิทธิภาพ
Memory Management
Web Frameworks
Database Integration
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี