วีดีโอ: เหตุใด Pthread_cond_wait จึงต้องการ mutex
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
NS mutex ใช้เพื่อป้องกันตัวแปรเงื่อนไขเอง นั่นเป็นเหตุผลที่คุณ ความต้องการ มันล็อคก่อนคุณ ทำ รอ จากนั้นเมื่อตัวแปรเงื่อนไขถูกส่งสัญญาณหรือแพร่ไปยัง เธรดในรายการรอหนึ่งรายการขึ้นไปจะถูกปลุกและ mutex จะถูกล็อคอย่างน่าอัศจรรย์อีกครั้งสำหรับเธรดนั้น
เกี่ยวกับเรื่องนี้ Pthread_cond_wait ปลดล็อก mutex หรือไม่
NS pthread_cond_wait () ฟังก์ชั่นบล็อกการเรียกเธรดบนเงื่อนไขตัวแปร cond และ ปลดล็อค ที่เกี่ยวข้อง มิวเท็กซ์ มิวเท็กซ์ . เธรดที่เรียกต้องถูกล็อค mutex ก่อนรอตัวแปรเงื่อนไข เมื่อกลับจากฟังก์ชัน mutex ถูกล็อคอีกครั้งและเป็นเจ้าของโดยเธรดการโทร
ต่อมา คำถามคือ ทำไมต้องใช้ mutex? จะทำให้แน่ใจว่ามีเพียงเธรดเดียวเท่านั้นที่รันโค้ดหลักในแต่ละครั้ง ซึ่งจะจำกัดการเข้าถึงโครงสร้างข้อมูล ช่วยให้มั่นใจได้ว่าเธรดทั้งสองมีมุมมองที่สมบูรณ์และเหมาะสมของหน่วยความจำนั้นโดยไม่คำนึงถึงการเรียงลำดับ CPU ใหม่ NS mutex เป็นสิ่งจำเป็นอย่างยิ่งเมื่อทำการเขียนโปรแกรมพร้อมกัน
ด้านบนนี้ เหตุใดตัวแปรเงื่อนไขจึงต้องการ mutex
NS mutex คือ ใช้ปกป้อง ตัวแปรเงื่อนไข ตัวเอง. นั่นเป็นเหตุผลที่คุณ ความต้องการ มันล็อคก่อนคุณ ทำ รอ แล้วเมื่อ ตัวแปรเงื่อนไข is ส่งสัญญาณหรือออกอากาศไปยังหนึ่งเธรดหรือมากกว่าในรายการรอ จะ ตื่นขึ้นและ mutex จะ ถูกล็อคอย่างน่าอัศจรรย์อีกครั้งสำหรับเธรดนั้น
ทำไมเราต้องมีตัวแปรเงื่อนไข?
ตัวแปรเงื่อนไข ปล่อยให้ชุดกระทู้นอนจนจั๊กจี้! คุณสามารถจี้หนึ่งเธรดหรือทุกเธรดที่อยู่ในโหมดสลีป หากคุณปลุกหนึ่งเธรด ระบบปฏิบัติการจะตัดสินใจว่าจะปลุกเธรดใด
แนะนำ:
เหตุใด iTunes ของฉันจึงไม่เปิดบน Mac
หากคุณเห็น "iTunes" ในแถบเมนูที่ด้านซ้ายบนเมื่อคุณพยายามเปิด ให้กด Command+Q หรือคลิก iTunes > ออกจาก iTunes รีสตาร์ท Mac ของคุณโดยคลิกที่ Apple ? เมนู > เริ่มต้นใหม่ เปิด iTunes ขณะที่กด shift บนแป้นพิมพ์ค้างไว้ จากนั้นทดสอบเพื่อดูว่ายังแจ้งอยู่หรือไม่ว่ากำลังอัปเดตอยู่
เหตุใด Apple ID ของฉันจึงถูกล็อคด้วยเหตุผลด้านความปลอดภัย
สาเหตุที่พบบ่อยที่สุดที่ Apple IDgets ถูกปิดใช้งานหรือถูกล็อคคือ: มีคนพยายามเข้าสู่ระบบ Apple ID ของคุณอย่างไม่ถูกต้องหลายครั้งเกินไป มีคนป้อนคำถามเพื่อความปลอดภัยของคุณไม่ถูกต้องหลายครั้งเกินไป ข้อมูลบัญชี Apple ID อื่น ๆ ถูกป้อนอย่างไม่ถูกต้องด้วยหลายครั้ง
เหตุใด Firefox จึงเป็นเบราว์เซอร์ที่ดี
Firefox เร็วกว่าและบางกว่า Chrome คุณสามารถเปิดแท็บได้มากขึ้นโดยไม่รู้สึกว่าช้าลง เว็บแอปและเกมบนเว็บทำงานได้ดีกว่า โดยเฉพาะเกม 3 มิติ ตัวบราวเซอร์เองโหลดเร็วขึ้นเมื่อเปิดตัว และรู้สึกตอบสนองมากขึ้นในการใช้งานแบบวันต่อวัน
เหตุใด Maven จึงเป็นเครื่องมือการจัดการโครงการ
Maven เป็นเครื่องมือจัดการโครงการที่มีประสิทธิภาพซึ่งใช้ POM (โมเดลอ็อบเจ็กต์ของโครงการ) ใช้สำหรับสร้างโปรเจ็กต์ การพึ่งพา และเอกสารประกอบ ทำให้กระบวนการสร้างง่ายขึ้นเช่น ANT maven ทำให้งานประจำวันของนักพัฒนา Java ง่ายขึ้นและโดยทั่วไปจะช่วยให้เข้าใจโปรเจ็กต์ที่ใช้ Java
เหตุใด SQL Server จึงต้องการ CTE
Common Table Expressions หรือ CTE สำหรับ short ถูกใช้ภายใน SQL Server เพื่อทำให้การรวมที่ซับซ้อนและแบบสอบถามย่อยง่ายขึ้น และเพื่อให้วิธีการสืบค้นข้อมูลตามลำดับชั้น เช่น แผนผังองค์กร