คำว่า "การเกิดพร้อมกันที่แท้จริง" เกิดขึ้นในการศึกษาเชิงทฤษฎีของการคำนวณพร้อมกันและขนาน ตรงกันข้ามกับการเกิดพร้อมกัน การเกิดพร้อมกันที่แท้จริงคือการเกิดพร้อมกันที่ไม่สามารถลดให้เป็นการแทรก การเกิดขึ้นพร้อมกันนั้นจะเกิดขึ้นหากในแต่ละขั้นตอนของการคำนวณจะมีเพียงการกระทำการคำนวณอะตอมเดียว (เช่นการแลกเปลี่ยนข้อความระหว่างผู้ส่งและผู้รับ) การเกิดขึ้นพร้อมกันนั้นเป็นจริงถ้ามีการกระทำแบบอะตอมมากกว่าหนึ่งครั้งในขั้นตอนเดียว
วิธีที่ง่ายที่สุดในการแยกแยะความแตกต่างทั้งสองอย่างคือดูกฎสำหรับการจัดองค์ประกอบแบบขนาน ในการตั้งค่าแบบสอดแทรกจะมีลักษณะดังนี้:
P→ P'P| Q→ P'| Q
กฎนี้บังคับให้มีเพียงหนึ่งกระบวนการในการประกอบแบบขนานเท่านั้นที่สามารถเรียกใช้การกระทำแบบอะตอมมิก สำหรับการทำงานพร้อมกันจริงกฎเช่นนี้จะเหมาะสมกว่า
P→ P'Q → Q'P| Q→ P'| Q'
กฎนี้อนุญาตให้ผู้เข้าร่วมทั้งสองในองค์ประกอบที่ขนานกันเพื่อเรียกใช้การกระทำของอะตอม
ทำไมคนเราถึงสนใจ interleaved concurrency เมื่อทฤษฎี concurrency เป็นการศึกษาระบบที่ใช้ขั้นตอนการคำนวณแบบขนานจริง ๆ ? คำตอบคือและนั่นเป็นความเข้าใจที่ดีว่าสำหรับรูปแบบที่เรียบง่ายของข้อความผ่านการทำงานพร้อมกัน, การเกิดพร้อมกันที่แท้จริงและการทำงานพร้อมกันตาม Interleaving จะไม่แยกตามบริบท กล่าวอีกนัยหนึ่งการทำงานพร้อมกันของ Interleaved จะทำงานเหมือนกับการเกิดพร้อมกันที่แท้จริงเท่าที่ผู้สังเกตการณ์มองเห็น การแทรกสอดเป็นการสลายตัวที่ดีของการเกิดพร้อมกันที่แท้จริง เนื่องจาก interleaving จัดการได้ง่ายกว่าในการพิสูจน์ผู้คนมักศึกษาเฉพาะการใช้ interleaving แบบง่าย ๆ (เช่น CCS และπ-calculi) อย่างไรก็ตามความเรียบง่ายนี้จะหายไปสำหรับการคำนวณพร้อมกันด้วยรูปแบบการสังเกตที่สมบูรณ์ยิ่งขึ้น (เช่นการคำนวณแบบกำหนดเวลา): ความแตกต่างระหว่างการเกิดพร้อมกันที่แท้จริง
การเทียบเท่ามาตรฐานเช่น bisimulations และการติดตามมีคำจำกัดความเดียวกันสำหรับการเกิดพร้อมกันตามจริงและการแทรกสอด แต่พวกเขาอาจหรือไม่อาจถือเอากระบวนการที่แตกต่างกันขึ้นอยู่กับแคลคูลัสเป็นต้น
ฉันจะให้คำอธิบายอย่างไม่เป็นทางการว่าทำไม interleaving และการทำงานร่วมกันอย่างแท้จริงพร้อมกันนั้นไม่สามารถจำแนกได้ในขั้นตอนการคำนวณอย่างง่าย การตั้งค่าเป็น CCS หรือเหมือนแคลคูลัส สมมติว่าเรามีโปรแกรมπ
แล้วเรามีดังต่อไปลดลงพร้อมกันอย่างแท้จริง:
P
P=x¯¯¯ | Y ¯¯¯ | x. Y . ¯¯¯ | Y . ข¯¯
ขั้นตอนการลดนี้สามารถจับคู่โดยขั้นตอนอินเตอร์ลีฟต่อไปนี้:
PP→Y. ¯¯¯ | ข ¯¯
P→→x¯¯¯ | x. Y . ¯¯¯ | ข ¯¯Y. ¯¯¯ | ข ¯¯
ความแตกต่างเพียงอย่างเดียวระหว่างทั้งสองคืออดีตใช้ขั้นตอนเดียวในขณะที่ทั้งสองหลัง แต่แคลคูลัสธรรมดาไม่สามารถตรวจจับจำนวนขั้นตอนที่ใช้ในการเข้าถึงกระบวนการ
ในเวลาเดียวกันมีลำดับการลด interleaved ลำดับที่สองต่อไปนี้:
PP
P→→Y¯¯¯ | Y . ¯¯¯ | Y . ข¯¯a¯¯¯ | Y . ข¯¯