บทความนี้แบ่งปันวิธีการเฉพาะของการใช้วิธีการเรียกใช้มัลติเธรด Java สำหรับการอ้างอิงของคุณกับคุณ เนื้อหาเฉพาะมีดังนี้
(i) ขั้นตอน
1. กำหนดและใช้งานอินเทอร์เฟซ Runnable
2. เขียนทับวิธีการเรียกใช้ในอินเตอร์เฟสที่เรียกใช้และเก็บรหัสที่เธรดต้องการเรียกใช้ในวิธีการเรียกใช้
3. สร้างวัตถุเธรดผ่านคลาสเธรด
4. ผ่านวัตถุ subclass ของอินเทอร์เฟซ Runnable เป็นพารามิเตอร์จริงไปยังตัวสร้างของคลาสเธรด
ทำไมเราถึงพูดคุยเกี่ยวกับตัวสร้างวัตถุ Subclass ของอินเทอร์เฟซที่ผ่านการเรียกใช้ผ่านไปยังเธรด? เนื่องจากวัตถุที่วิธีการที่กำหนดเองเป็นวัตถุย่อยของอินเตอร์เฟสที่เรียกใช้ได้
5. เรียกวิธีการเริ่มต้นของคลาสเธรดเพื่อเริ่มเธรดและเรียกใช้วิธีการเรียกใช้ subclass อินเตอร์เฟส runnable
(ii) ปัญหาบล็อกรหัสที่ใช้ร่วมกันอย่างปลอดภัยของเธรด
วัตถุประสงค์: มีปัญหาด้านความปลอดภัยกับโปรแกรมหรือไม่? ถ้าเป็นเช่นนั้นจะแก้ปัญหาได้อย่างไร?
วิธีค้นหาคำถาม:
1. ระบุรหัสที่ใช้รหัสผ่านแบบมัลติเธรด
2. แบ่งปันข้อมูลอย่างชัดเจน
3. ชี้แจงว่าคำสั่งใดในรหัสหลายเธรดที่ทำงานเพื่อแบ่งปันข้อมูล
ธนาคารชั้นเรียน {ผลรวม INT ส่วนตัว; โมฆะสาธารณะเพิ่ม (int n) {sum+= n; System.out.println ("sum ="+sum); }} คลาส CUS ใช้งาน Runnable {Private Bank B = New Bank (); โมฆะสาธารณะเรียกใช้ () {ซิงโครไนซ์ (b) {สำหรับ (int x = 0; x <3; x ++) {b.add (100); }}}} ระดับสาธารณะ BankDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {cus c = new cus (); เธรด t1 = เธรดใหม่ (c); เธรด t2 = เธรดใหม่ (c); t1.start (); t2.start (); - หรือในวิธีที่สองให้ใส่รหัสการซิงโครไนซ์ซิงโครไนซ์ในวิธีการปรับเปลี่ยน
ธนาคารชั้นเรียน {ผลรวม INT ส่วนตัว; โมฆะที่ซิงโครไนซ์สาธารณะเพิ่ม (int n) {Object obj = วัตถุใหม่ (); sum+= n; ลอง {thread.sleep (10); } catch (exception e) {e.printstacktrace (); } system.out.println ("sum ="+sum); }} คลาส CUS ใช้งาน Runnable {Private Bank B = New Bank (); โมฆะสาธารณะเรียกใช้ () {สำหรับ (int x = 0; x <3; x ++) {b.add (100); }}} ระดับสาธารณะ BankDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {cus c = new CUS (); เธรด t1 = เธรดใหม่ (c); เธรด t2 = เธรดใหม่ (c); t1.start (); t2.start (); - สรุป:
1. กำหนดปัญหาและวิธีการจัดการในชั้นเรียน
2. เขียนวิธีการเรียกใช้ในคลาสที่ใช้งานได้เพื่อเรียกใช้วิธีการเพื่อจัดการกับปัญหาในคลาสที่กำหนดไว้แล้ว
ยอมรับวัตถุของคลาสเพื่อจัดการกับปัญหาในบล็อกที่ซิงโครไนซ์
3. กำหนดหลายเธรดเพื่อดำเนินการในวิธีหลัก
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น