คำถามติดแท็ก reentrancy

7
อะไรคือฟังก์ชั่น reentrant
ส่วนใหญ่ ของ ครั้งความหมายของ reentrance ที่ยกมาจากวิกิพีเดีย : โปรแกรมคอมพิวเตอร์หรือรูทีนถูกอธิบายว่าเป็น reentrant หากสามารถ เรียกได้อย่างปลอดภัยอีกครั้งก่อนที่การร้องขอก่อนหน้านี้จะเสร็จสมบูรณ์ (เช่นสามารถดำเนินการได้อย่างปลอดภัยพร้อมกัน) ในการเป็น reentrant โปรแกรมคอมพิวเตอร์หรือชุดคำสั่ง: ต้องไม่เก็บข้อมูลที่ไม่คงที่ (หรือทั่วโลก) ต้องไม่ส่งคืนที่อยู่เป็นข้อมูลคงที่ (หรือทั่วโลก) ที่ไม่ใช่ค่าคงที่ จะต้องทำงานเฉพาะกับข้อมูลที่ผู้โทรแจ้งมาเท่านั้น ต้องไม่พึ่งพาการล็อกกับรีซอร์สเดี่ยว ต้องไม่แก้ไขโค้ดของตัวเอง (ยกเว้นว่าจะดำเนินการในพื้นที่จัดเก็บเธรดเฉพาะของตนเอง) ต้องไม่เรียกโปรแกรมคอมพิวเตอร์หรือรูทีนที่ไม่ใช่ reentrant เป็นวิธีการที่ปลอดภัยที่กำหนดไว้? หากโปรแกรมสามารถดำเนินการได้อย่างปลอดภัยพร้อมกันก็หมายความว่ามันเป็น reentrant? อะไรคือเธรดทั่วไประหว่างจุดทั้งหกที่กล่าวถึงว่าฉันควรจำไว้ในขณะที่ตรวจสอบรหัสของฉันสำหรับความสามารถ reentrant นอกจากนี้ ฟังก์ชั่นการเรียกซ้ำทั้งหมดเป็น reentrant หรือไม่ ฟังก์ชั่น thread-safe ทั้งหมดถูก reentrant หรือไม่ ฟังก์ชันการเรียกซ้ำทั้งหมดและแบบปลอดภัยต่อการส่งข้อความ reentrant ทั้งหมดหรือไม่ ในขณะที่เขียนคำถามนี้สิ่งหนึ่งที่อยู่ในใจ: เงื่อนไขเช่นreentranceและความปลอดภัยแน่นอนที่ทุกคนคือพวกเขามีคำจำกัดความที่เป็นรูปธรรมหรือไม่? สำหรับถ้าไม่ใช่คำถามนี้ไม่มีความหมายมากนัก

3
Threadsafe เทียบกับ re-entrant
เมื่อเร็ว ๆ นี้ฉันถามคำถามโดยมีหัวข้อว่า"เธรด Malloc ปลอดภัยหรือไม่" และในนั้นฉันถามว่า "malloc re-entrant หรือไม่" ฉันรู้สึกว่าผู้เข้าใหม่ทั้งหมดปลอดภัยต่อเธรด สมมติฐานนี้ผิดหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.