# แพ็กเกจ context (Go) > context.Context, การยกเลิก, timeout, deadline, ค่า, WithCancel, WithTimeout - 20 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Go](https://sharpskill.dev/th/technologies/go/interview-questions.md) ## 1. บทบาทหลักของแพ็กเกจ context ใน Go คืออะไร? **คำตอบ** แพ็กเกจ context ช่วยให้จัดการ timeout, การยกเลิก และ deadline ได้อย่างสอดคล้องกันตลอดทั้งห่วงโซ่การเรียก ซึ่งป้องกัน goroutine ที่เป็นซอมบี้ซึ่งยังคงทำงานต่อทั้งที่ไม่ต้องการผลลัพธ์แล้ว ควรส่ง context เป็นพารามิเตอร์แรกเสมอ และตรวจสอบ Done() เป็นประจำในการทำงานที่ยาวนานเพื่อเคารพการยกเลิก ## 2. ฟังก์ชันใดสร้าง context ว่างที่ไม่มี deadline หรือการยกเลิก? **คำตอบ** context.Background() คืน context ว่างที่ยกเลิกไม่ได้ ไม่มี deadline หรือค่าใด ๆ ใช้เป็นจุดเริ่มต้นในการสร้าง context ที่สืบทอดมา และมักใช้ใน main การกำหนดค่าเริ่มต้น หรือการทดสอบ ห้ามใช้ nil เป็น context เด็ดขาดเพราะจะทำให้เกิด panic เมื่อเข้าถึงเมธอด ## 3. ความแตกต่างระหว่าง context.Background() กับ context.TODO() คืออะไร? **คำตอบ** context.TODO() ทำหน้าที่เป็น placeholder เมื่อยังไม่ชัดเจนหรือยังไม่มี context ที่เหมาะสมระหว่างการพัฒนา ส่วน context.Background() ใช้สำหรับจุดเข้าจริง เช่น main หรือ HTTP handler ทั้งสองทำงานเหมือนกันในเชิงฟังก์ชัน แต่ TODO() ระบุเจตนาชั่วคราวที่ควรถูกแทนที่ภายหลัง ## มีอีก 17 คำถาม - จะสร้าง context ที่สามารถยกเลิกได้ด้วยตนเองอย่างไร? - channel ใดที่ใช้ตรวจจับการยกเลิกของ context ได้? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Go อื่นๆ - [พื้นฐาน Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-basics.md): 25 คำถาม, Junior - [โครงสร้างข้อมูล Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-data-structures.md): 20 คำถาม, Junior - [อินเทอร์เฟซใน Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-interfaces.md): 18 คำถาม, Junior - [การจัดการข้อผิดพลาด](https://sharpskill.dev/th/technologies/go/interview-questions/error-handling.md): 20 คำถาม, Junior - [พื้นฐาน Goroutine](https://sharpskill.dev/th/technologies/go/interview-questions/goroutines-basics.md): 20 คำถาม, Junior - [Channels](https://sharpskill.dev/th/technologies/go/interview-questions/channels.md): 22 คำถาม, Junior - [Go Modules](https://sharpskill.dev/th/technologies/go/interview-questions/go-modules.md): 18 คำถาม, Mid-Level - [เซิร์ฟเวอร์ HTTP](https://sharpskill.dev/th/technologies/go/interview-questions/http-server.md): 24 คำถาม, Mid-Level - [ไคลเอนต์ HTTP](https://sharpskill.dev/th/technologies/go/interview-questions/http-client.md): 18 คำถาม, Mid-Level - [การเข้ารหัส JSON](https://sharpskill.dev/th/technologies/go/interview-questions/json-encoding.md): 20 คำถาม, Mid-Level - [Database/SQL](https://sharpskill.dev/th/technologies/go/interview-questions/database-sql.md): 22 คำถาม, Mid-Level - [Testing](https://sharpskill.dev/th/technologies/go/interview-questions/testing.md): 22 คำถาม, Mid-Level - [รูปแบบ Concurrency](https://sharpskill.dev/th/technologies/go/interview-questions/concurrency-patterns.md): 24 คำถาม, Mid-Level - [ไพรมิทีฟการซิงโครไนซ์](https://sharpskill.dev/th/technologies/go/interview-questions/sync-primitives.md): 22 คำถาม, Mid-Level - [เฟรมเวิร์กเว็บ Go](https://sharpskill.dev/th/technologies/go/interview-questions/go-web-frameworks.md): 20 คำถาม, Mid-Level - [การออกแบบ REST API](https://sharpskill.dev/th/technologies/go/interview-questions/rest-api-design.md): 20 คำถาม, Mid-Level - [gRPC](https://sharpskill.dev/th/technologies/go/interview-questions/grpc.md): 22 คำถาม, Mid-Level - [Reflection](https://sharpskill.dev/th/technologies/go/interview-questions/reflection.md): 20 คำถาม, Senior - [การจัดการหน่วยความจำ](https://sharpskill.dev/th/technologies/go/interview-questions/memory-management.md): 24 คำถาม, Senior - [การเพิ่มประสิทธิภาพการทำงาน](https://sharpskill.dev/th/technologies/go/interview-questions/performance-optimization.md): 22 คำถาม, Senior - [Generics](https://sharpskill.dev/th/technologies/go/interview-questions/generics.md): 20 คำถาม, Senior - [Go Design Patterns](https://sharpskill.dev/th/technologies/go/interview-questions/design-patterns.md): 24 คำถาม, Senior - [Microservices](https://sharpskill.dev/th/technologies/go/interview-questions/microservices.md): 24 คำถาม, Senior - [ความปลอดภัยและการยืนยันตัวตน](https://sharpskill.dev/th/technologies/go/interview-questions/security-authentication.md): 24 คำถาม, Senior - [Docker & Containerization](https://sharpskill.dev/th/technologies/go/interview-questions/docker-containerization.md): 20 คำถาม, Senior - [Kubernetes Basics](https://sharpskill.dev/th/technologies/go/interview-questions/kubernetes-basics.md): 22 คำถาม, Senior - [Go ขั้นสูง](https://sharpskill.dev/th/technologies/go/interview-questions/advanced-go.md): 20 คำถาม, Senior - [การพัฒนา CLI](https://sharpskill.dev/th/technologies/go/interview-questions/cli-development.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/go/interview-questions/context-package