เธรด vector Push_back ปลอดภัยหรือไม่
เธรด vector Push_back ปลอดภัยหรือไม่

วีดีโอ: เธรด vector Push_back ปลอดภัยหรือไม่

วีดีโอ: เธรด vector Push_back ปลอดภัยหรือไม่
วีดีโอ: Thread Safety 2024, อาจ
Anonim

มันไม่ใช่ เกลียว - ปลอดภัย เพราะ เวกเตอร์ อยู่ติดกันและถ้ามันใหญ่ขึ้นคุณอาจต้องย้ายเนื้อหาของa เวกเตอร์ ไปยังตำแหน่งอื่นในความทรงจำ

คำถามก็คือ เธรด vectors ปลอดภัยหรือไม่

เวกเตอร์ มีการซิงโครไนซ์ วิธีใดที่สัมผัสได้ เวกเตอร์ เนื้อหาคือ ปลอดภัยต่อด้าย . ในทางกลับกัน ArrayList จะไม่ซิงโครไนซ์ ดังนั้นจึงไม่ใช่ ปลอดภัยต่อด้าย.

รู้ด้วยว่าเธรด HashMap ปลอดภัยหรือไม่ HashMap ไม่ซิงโครไนซ์ มันไม่ใช่- threadsafe และไม่สามารถแบ่งปันกันได้หลายคน กระทู้ ไม่มีรหัสการซิงโครไนซ์ที่เหมาะสมในขณะที่ Hashtable ถูกซิงโครไนซ์ มันคือ เกลียว - ปลอดภัย และสามารถแบ่งปันได้มากมาย กระทู้.

ในที่นี้ vector หรือ ArrayList ไหนดีกว่ากัน

เวกเตอร์ คล้ายกับ ArrayList แต่ถูกซิงโครไนซ์ ArrayList คือ ดีกว่า ทางเลือกถ้าโปรแกรมของคุณปลอดภัยสำหรับเธรด เวกเตอร์ และ ArrayList requirespace เมื่อมีการเพิ่มองค์ประกอบเพิ่มเติม เวกเตอร์ แต่ละครั้งจะเพิ่มขนาดอาร์เรย์เป็นสองเท่า ในขณะที่ ArrayList เติบโต 50% ของขนาดในแต่ละครั้ง

เหตุใดจึงใช้เวกเตอร์ใน Java

เวกเตอร์ ใน Java . เวกเตอร์ ใช้อินเทอร์เฟซรายการ เช่นเดียวกับ ArrayList มันยังรักษาลำดับการแทรกแต่มันไม่ค่อย ใช้แล้ว ในสภาพแวดล้อมที่ไม่ใช่เธรดเนื่องจากมีการซิงโครไนซ์และด้วยเหตุนี้จึงทำให้ประสิทธิภาพในการค้นหา เพิ่ม ลบ และอัปเดตองค์ประกอบต่างๆ ได้ไม่ดี

แนะนำ: