สองวิธีในการปรับแต่งเธรด
ปรับแต่งคลาสการใช้งานอินเทอร์เฟซที่เรียกใช้งานได้จากนั้นสร้างเธรดนั่นคือผ่านคลาสอินเตอร์เฟสที่รันได้ไปยังเธรด
เธรดใหม่หรือเขียนคลาสย่อยเธรดเพื่อแทนที่วิธีการเรียกใช้ (ใหม่เธรดและการเอาชนะวิธีการเรียกใช้เป็นวิธีการเรียนในชั้นเรียนที่ไม่ระบุชื่อ)
รหัสตัวอย่าง
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {เธรดใหม่ (ใหม่ runnable () {@overridepublic void run () {system.out.println ("สร้างเธรดโดยผ่านเป้าหมายที่สามารถเรียกใช้ได้!");}}) เริ่มต้น () !");};}.เริ่ม();}วิธีการที่กล่าวถึงข้างต้นสำหรับการสร้างเธรดของ 1 และ 2 ได้รับการออกแบบด้วยวัตถุคลาสที่ไม่ระบุชื่อเนื่องจากวิธีการเขียนรหัส ตอนนี้มีคำแนะนำเสริมนี้แล้ว:
1. สำหรับย่อหน้าแรกฉันผ่านโดยตรงในอินสแตนซ์ที่ไม่ระบุชื่อ คุณสามารถปรับแต่งอินสแตนซ์ที่รันได้จากนั้นรับเธรดในรูปแบบของเธรดใหม่ (Runnable);
2. สำหรับย่อหน้าที่สองคุณสามารถกำหนดคลาสโดยเฉพาะเพื่อขยายคลาสฐานเธรดจากนั้นใหม่คลาสเธรดใหม่นี้
3. สำหรับทั้งสองส่วนนี้สร้างวัตถุคลาสที่ไม่ระบุชื่อโดยตรงด้วยเธรดใหม่ คุณสามารถกำหนดตัวแปร Thread1 และ Thread2 จากนั้นใช้ thread1.start () thread2.start () เพื่อเริ่มเธรด;
การวิเคราะห์ซอร์สโค้ด
ความแตกต่างระหว่างสองวิธีนี้คืออะไร? เอฟเฟกต์สุดท้ายของทั้งสองเหมือนกัน จากระดับซอร์สโค้ดเมธอดการเรียกใช้เริ่มต้นของเธรด (หากไม่ได้เขียนทับ) เป็นวิธีการเรียกใช้ที่เรียกว่าเป้าหมาย (เป้าหมายไม่ว่าง) Target คือคลาสอินเตอร์เฟส Runnable ที่เราผ่านเข้ามา
Public Synchronized Void start () {ถ้า (ThreadStatus! = 0) โยน unglegalThreadStateException ใหม่ใหม่ (); group.add (นี่); บูลีนเริ่มต้น = false; ลอง {start0 (); เริ่มต้น = true;} ในที่สุด {ลอง {if (!ในที่สุดการเริ่มต้นของเธรดจะเรียก Native Start0 ซึ่งจะทำให้เครื่องเสมือน JVM เรียกใช้วิธีการเรียกใช้ของเธรด
โมฆะสาธารณะเรียกใช้ () {ถ้า (เป้าหมาย! = null) {target.run ();}}นี่คือเป้าหมายคือวัตถุที่รันได้ในเธรด
เป้าหมายส่วนตัว
สรุป
วิธีการเรียกใช้ของเธรดการเขียนใหม่คือวิธีการเรียกใช้ที่ดำเนินการโดยเธรดเมื่อเริ่มต้น
เมื่อผ่าน Runnable เธรดจะดำเนินการวิธีการเรียกใช้เริ่มต้นเมื่อเริ่มต้น วิธีการเรียกใช้จะเรียกเป้าหมายที่ผ่านและเรียกใช้วิธีการเรียกใช้เป้าหมาย
ผลกระทบของทั้งคู่เหมือนกันนี่คือเพื่อช่วยให้เราเห็นความแตกต่างในรายละเอียดรหัส
ข้างต้นเป็นการวิเคราะห์ที่ครอบคลุมของวิธีการเริ่มต้นและเรียกใช้ในเธรด Java ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณต้องการทราบข้อมูลเพิ่มเติมโปรดใส่ใจกับ wulin.com!