ตัวอย่างนี้แบ่งปันสามวิธีในการใช้มัลติเธรดใน Java สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
นำเข้า java.util.concurrent.callable; นำเข้า java.util.concurrent.futuretask; คลาสสาธารณะหลัก {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {// วิธีที่ 1: สืบทอดเธรด int i = 0; // สำหรับ (; i <100; i); // ถ้า (i == 5) {// theadextendSthread theadextendSthread = ใหม่ theadextendSthread (); // theadextendSthread.start (); //} //} // เมธอด 2: ใช้งาน runnable // สำหรับ (i = 0; + "" + i); // ถ้า (i == 5) {// runnable runnable = new ThreadImplementsRunnable (); // เธรดใหม่ (runnable). start (); //} //} // เมธอด 3: ใช้อินเตอร์เฟสโทรติดต่อ FutureTask <Integer> FutureTask = New FutureTask <> (callable); สำหรับ (i = 0; i <100; i ++) {system.out.println (thread.currentthread (). getName () + "" + i); if (i == 5) {เธรดใหม่ (futureTask) .start (); เธรดใหม่ (FutureTask). start (); }} ลอง {system.out.println ("FutureTask RuTurn:" + FutureTask.get ()); } catch (exception e) {e.printstacktrace (); - วิธีที่ 1 สืบทอดมาจากเธรด
ชั้นเรียนสาธารณะ theadextendSthread ขยายเธรด {private int i; @Override โมฆะสาธารณะ Run () {สำหรับ (; i <100; i ++) {system.out.println (getName () + "" + i); -วิธีการเรียกใช้คือร่างกายการดำเนินการเธรดและวัตถุ theadextendSthread คือวัตถุเธรด
วิธีที่ 2: ใช้อินเทอร์เฟซ Runnable
Public Class ThreadImplementsRunnable ใช้งานได้ Runnable {Private int i; @Override โมฆะสาธารณะ Run () {สำหรับ (; i <100; i ++) {system.out.println (thread.currentthread (). getName () + "" + i); -วิธีการเรียกใช้คือร่างกายการดำเนินการเธรด เมื่อใช้งานวัตถุเธรดเป็นของใหม่และวัตถุที่เรียกใช้ได้จะถูกส่งผ่านไปยังวัตถุเธรดเป็นเป้าหมาย และวัตถุที่รันได้เดียวกันสามารถใช้เป็นเป้าหมายสำหรับหลายเธรดและเธรดเหล่านี้แบ่งปันตัวแปรอินสแตนซ์ของวัตถุที่เรียกใช้งานได้
วิธีที่ 3: ใช้อินเทอร์เฟซที่เรียกได้
นำเข้า java.util.concurrent.callable; Public Class ThreadImplementsCallable ANPLEMENCE CALLABLE <teger> {Private Int i; @Override การเรียกใช้จำนวนเต็มสาธารณะ () พ่นข้อยกเว้น {สำหรับ (; i <100; i ++) {system.out.println (thread.currentthread (). getName () + "" + i); } return i; -อินเทอร์เฟซ callable นั้นคล้ายกับอินเทอร์เฟซ Runnable แต่มันแข็งแกร่งกว่าอีกฝ่าย ตัวดำเนินการเธรดเป็นวิธีการโทรซึ่งมีค่าส่งคืนและสามารถโยนข้อยกเว้นได้ เมื่อใช้ให้ห่อวัตถุที่เรียกได้ว่าเป็นวัตถุ FutureTask ให้ระบุประเภทค่าส่งคืนผ่านทั่วไป คุณสามารถโทรหาวิธี GET ของ FutureTask เพื่อดึงผลลัพธ์การดำเนินการ
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน