ฉันมีกระบวนการ Java ที่เปิดไฟล์โดยใช้ FileReader ฉันจะป้องกันไม่ให้กระบวนการอื่น (Java) เปิดไฟล์นี้ได้อย่างไรหรืออย่างน้อยก็แจ้งให้กระบวนการที่สองนั้นทราบว่าไฟล์นั้นเปิดอยู่แล้ว? สิ่งนี้ทำให้กระบวนการที่สองได้รับข้อยกเว้นโดยอัตโนมัติหรือไม่หากไฟล์เปิดอยู่ (ซึ่งช่วยแก้ปัญหาของฉันได้) หรือฉันต้องเปิดอย่างชัดเจนในกระบวนการแรกด้วยแฟล็กหรืออาร์กิวเมนต์บางประเภท?
ชี้แจง:
ฉันมีแอป Java ที่แสดงรายการโฟลเดอร์และเปิดแต่ละไฟล์ในรายการเพื่อประมวลผล มันประมวลผลแต่ละไฟล์หลังจากที่อื่น ๆ การประมวลผลของแต่ละไฟล์ประกอบด้วยการอ่านและทำการคำนวณบางอย่างตามเนื้อหาและใช้เวลาประมาณ 2 นาที ฉันยังมีแอป Java อื่นที่ทำสิ่งเดียวกัน แต่เขียนลงในไฟล์แทน สิ่งที่ฉันต้องการคือสามารถเรียกใช้แอพเหล่านี้ได้ในเวลาเดียวกันดังนั้นสถานการณ์จึงเป็นเช่นนี้ ReadApp แสดงรายการโฟลเดอร์และค้นหาไฟล์ A, B, C จะเปิดไฟล์ A และเริ่มการอ่าน WriteApp แสดงรายการโฟลเดอร์และค้นหาไฟล์ A, B, C มันเปิดไฟล์ A เห็นว่าเปิดอยู่ (ด้วยข้อยกเว้นหรือวิธีใดก็ได้) และไปที่ไฟล์ B ReadApp เสร็จสิ้นไฟล์ A และไปยัง B มันจะเห็นว่ามัน เปิดอยู่และไปยัง C. สิ่งสำคัญคือ WriteApp ไม่ ' t เขียนในขณะที่ ReadApp กำลังอ่านไฟล์เดียวกันหรือในทางกลับกัน เป็นกระบวนการที่แตกต่างกัน