คำถามติดแท็ก happens-before

2
Corotines Kotlin“ รับประกันก่อนเกิด”
corotines Kotlin ให้การรับประกัน "ที่เกิดขึ้นก่อนหน้า" หรือไม่? ตัวอย่างเช่นมีการรับประกัน "ที่เกิดขึ้นก่อน" ระหว่างการเขียนถึงmutableVarและการอ่านในภายหลัง (อาจ) เธรดอื่น ๆ ในกรณีนี้: suspend fun doSomething() { var mutableVar = 0 withContext(Dispatchers.IO) { mutableVar = 1 } System.out.println("value: $mutableVar") } แก้ไข: บางทีตัวอย่างเพิ่มเติมอาจทำให้คำถามชัดเจนขึ้นเพราะมันมากขึ้น Kotlin-ish (ยกเว้นความไม่แน่นอน) โค้ดนี้ปลอดภัยสำหรับเธรดหรือไม่: suspend fun doSomething() { var data = withContext(Dispatchers.IO) { Data(1) } System.out.println("value: ${data.data}") } private data …

1
“ เกิดขึ้นก่อนหน้านี้” หมายความว่าอะไร?
วลี "เกิดขึ้นอย่างแรงก่อน" ถูกใช้หลายครั้งในมาตรฐานฉบับร่าง C ++ ตัวอย่างเช่น: การยุติ [basic.start.term] / 5 หากความสมบูรณ์ของการเริ่มต้นของวัตถุที่มีระยะเวลาการจัดเก็บแบบคงที่เกิดขึ้นก่อนที่จะเรียก std :: atexit (ดู, [support.start.term]) การเรียกฟังก์ชั่นผ่านไปยัง std :: atexit ถูกจัดลำดับก่อนการเรียกไปยัง destructor สำหรับวัตถุ ถ้าการเรียกไปยัง std :: atexit เกิดขึ้นอย่างมากก่อนที่การเริ่มต้นของวัตถุที่มีระยะเวลาการจัดเก็บแบบสแตติกการเรียกไปยัง destructor สำหรับวัตถุนั้นจะถูกจัดลำดับก่อนที่การเรียกไปยังฟังก์ชันที่ส่งผ่านไปยัง std :: atexit . หากการเรียกไปยัง std :: atexit เกิดขึ้นอย่างยิ่งก่อนการเรียกไปยัง std :: atexit การเรียกใช้ฟังก์ชันที่ส่งไปยังการเรียก std :: atexit ที่สองจะถูกจัดลำดับก่อนการเรียกไปยังฟังก์ชันที่ส่งไปยัง first std :: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.