C ++ มีมัลติเธรดหรือไม่
C ++ มีมัลติเธรดหรือไม่

วีดีโอ: C ++ มีมัลติเธรดหรือไม่

วีดีโอ: C ++ มีมัลติเธรดหรือไม่
วีดีโอ: เคยสงสัยกันมั้ยว่า C กับ C++ ต่างกันยังไง ? #Shorts 2024, อาจ
Anonim

NS มัลติเธรด โปรแกรมประกอบด้วยสองส่วนขึ้นไปที่ สามารถ วิ่งไปพร้อม ๆ กัน แต่ละส่วนของโปรแกรมดังกล่าว เป็น เรียกว่า เกลียว และแต่ละ เกลียว กำหนดเส้นทางการดำเนินการแยกต่างหาก C++ ไม่ ไม่มีการสนับสนุนในตัวสำหรับ มัลติเธรด แอปพลิเคชัน

ต่อจากนั้นอาจมีคนถามว่า C ++ เธรดเดียวหรือไม่

Multithreading ใน C++ Multithreading รองรับ C+11 C++ 11 กำจัดสิ่งเหล่านั้นและให้มาตรฐานแก่เรา:: เกลียว . NS เกลียว คลาสและฟังก์ชันที่เกี่ยวข้องถูกกำหนดไว้ใน เกลียว ไฟล์ส่วนหัว มาตรฐาน:: เกลียว คือ เกลียว คลาสที่แสดงถึงa เธรดเดียว ใน C++

ข้างบนนั้น Python เป็น single thread หรือ multithreaded หรือไม่? คำตอบสั้นๆ คือ ใช่ พวกเขาคือ เกลียวเดียว . JRuby เป็น มัลติเธรด และสามารถรันใน tomcat ได้เหมือนกับโค้ด java อื่น ๆ MRI (ทับทิมเริ่มต้น) และ Python ทั้งคู่มี GIL (Global Interpreter Lock) และเป็นเช่นนั้น เกลียวเดียว.

คำถามก็คือเธรดแผนที่ C ++ ปลอดภัยหรือไม่

2 คำตอบ มาตรฐาน C++11 รับประกันว่าการเข้าถึงคอนเทนเนอร์ของวิธี const คือ ปลอดภัย จากที่แตกต่างกัน กระทู้ (เช่น ทั้งสองใช้วิธี const) คำตอบสั้นๆ คือ คุณคือ ปลอดภัย , ตราบใดที่คนอื่น ๆ เกลียว ไม่ยุ่งโดยตรงกับรายการนั้นใน แผนที่.

หลายเธรดสามารถเรียกใช้ฟังก์ชันเดียวกันได้หรือไม่

หลายเธรดเรียกใช้ฟังก์ชันเดียวกัน ที่ เหมือนกัน เวลา. แต่ละ เรียกฟังก์ชัน มีชุดตัวแปรท้องถิ่นของตัวเองและ จะ ไม่เคยรบกวนผู้อื่น กระทู้ หรืออื่น ๆ โทร ของ ฟังก์ชั่นเดียวกัน ใน เรียก ซ้อนกัน. อย่างไรก็ตาม ทรัพยากรทั้งหมดที่อาจใช้ร่วมกันระหว่าง กระทู้ ที่อาจเป็นอันตรายได้