ส่วนต่อประสานที่รันได้ใน Java: การนำไปใช้ ขั้นตอน & ข้อผิดพลาด

เผยแพร่แล้ว: 2021-05-02

สารบัญ

บทนำ

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

Runnable Interface ใน Java คืออะไร?

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

  • การใช้เธรดคลาสย่อย
  • เอาชนะเมธอด run()

Java ไม่อนุญาตให้มีการสืบทอดหลายรายการในโปรแกรม คุณสามารถขยายได้เพียงคลาสเดียวเท่านั้น และเมื่อคุณขยายคลาสของเธรด คลาสนั้นจะใช้หน่วยความจำ เวลาในการคำนวณ และทรัพยากรอื่นๆ มากขึ้น ดังนั้นจึงเพิ่มค่าใช้จ่ายในการใช้วิธีการเพิ่มเติม จากสองตัวเลือกข้างต้น ควรใช้อินเทอร์เฟซที่รันได้เพื่อสร้างเธรด ในการดำเนินการดังกล่าว คุณต้องจัดเตรียมการใช้งานสำหรับเมธอด run()

ขั้นตอนในการสร้างเธรดโดยใช้ Runnable Interface ใน Java

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างเธรดโดยใช้ อินเทอร์เฟซที่รัน ได้ ใน Java

  1. สร้างคลาสเธรดที่จะใช้อินเทอร์เฟซที่รันได้
  2. ในคลาสเธรด เขียนฟังก์ชันเพื่อแทนที่เมธอด run()
  3. สร้างอินสแตนซ์ของคลาสเธรด
  4. อินสแตนซ์ของเธรดมีตัวสร้างที่ยอมรับอ็อบเจกต์ที่รันได้ ส่งผ่านวัตถุนี้เป็นพารามิเตอร์ไปยังอินสแตนซ์ของเธรด
  5. สุดท้าย เรียกวิธีการเริ่มต้นของอินสแตนซ์ของเธรด

อ่านเพิ่มเติม: แนวคิดและหัวข้อโปรเจ็กต์ Java

การใช้งาน Runnable Interface ใน Java

การใช้เมธอด run() เป็นวิธีที่ง่ายที่สุดในการสร้างเธรดใหม่ ทำหน้าที่เป็นจุดเริ่มต้นสำหรับการสร้างเธรดใหม่ การใช้งานอินเทอร์เฟซที่รันได้จะใช้โค้ดภายในเมธอด run() และรันบนเธรดที่เกิดขึ้นพร้อมกัน คุณสามารถเรียกใช้คลาส สร้างตัวแปรใหม่ หรือเรียกใช้การดำเนินการในเมธอด run() เพื่อใช้งาน อินเทอร์เฟซที่รัน ได้ ใน Java โปรแกรมจะทำให้แน่ใจว่าเธรดนั้นไม่ทำงานจนกว่าจะพิมพ์คำสั่งส่งคืนในโค้ด

TestRunnableInterface คลาสสาธารณะ {

โมฆะคงที่สาธารณะหลัก (สตริง [] args) {

System.out.println(“จากวิธีการหลัก (): ” + Thread.currentThread().getName());

System.out.println(“การใช้ อินเทอร์เฟซที่รันได้ใน Java “);

อินสแตนซ์ที่รันได้ = Runnable ใหม่ () {@Override

โมฆะสาธารณะ () {

System.out.println(“จากวิธีรัน (): ” + Thread.currentThread().getName());

}

};

System.out.println(“สร้างอินสแตนซ์ใหม่ของวัตถุเธรด”);

การทดสอบเธรด = เธรดใหม่ (ตัวอย่าง);

System.out.println(“กำลังดำเนินการเธรด!”);

test.start();

}

}

เอาท์พุต

จากวิธีการหลัก (): main

การใช้ อินเทอร์เฟซที่รันได้ใน Java

สร้างอินสแตนซ์ใหม่ของวัตถุเธรด

จาก run() วิธีการ: Thread-0

พบข้อผิดพลาดเมื่อใช้งานอินเทอร์เฟซที่รันได้ใน Java

เมธอด run() จะแสดงข้อผิดพลาดข้อยกเว้นรันไทม์เมื่อโปรแกรมหยุดทำงานเนื่องจากไวยากรณ์หรือข้อผิดพลาดของโค้ด หากเครื่องเสมือน Java ตรวจไม่พบข้อผิดพลาด เธรดที่สร้างขึ้นจะจัดการกับข้อยกเว้นที่ JVM พลาดไป ตัวจัดการข้อยกเว้นพิมพ์ข้อยกเว้นและหยุดโปรแกรม

นำเข้า java.io.FileNotFoundException;

TestRunnableInterface คลาสสาธารณะ {

โมฆะคงที่สาธารณะหลัก (สตริง [] args) {

System.out.println(“เธรดหลักคือ: ” + Thread.currentThread().getName());

การทดสอบเธรด = เธรดใหม่ (ใหม่ TestRunnableInterface (). ใหม่ DemoInstance ());

test.start();

}

DemoInstance คลาสส่วนตัวใช้ Runnable {

โมฆะสาธารณะ () {

System.out.println(Thread.currentThread().getName() + “, เรียกใช้เมธอด run()!”);

พยายาม {

โยน FileNotFoundException();

}

จับ (การสาธิต FileNotFoundException) {

System.out.println(“ตรวจพบข้อผิดพลาด!”);

demo.printStackTrace();

}

}

}

}

เอาท์พุต

เธรดหลักคือ: main

Thread-0 เรียกใช้เมธอด run()!

จับผิด!

java.io.FileNotFoundException

ที่ TestRunnableInterface$DemoInstance.run(Example.java:21)

ที่ java.lang.Thread.run(Thread.java:748)

คลาส TestRunnableInterface ในโปรแกรมด้านบนไม่มีข้อยกเว้น FileNotFoundException เครื่องเสมือน Java ดูแลข้อยกเว้นที่ควรได้รับการจัดการโดยคลาส TestRunnableInstance

ใช้กรณีของ Runnable Interface ใน Java

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

เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บทสรุป

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

คุณสามารถลองใช้โค้ดเพื่อเสริม ความรู้ของคอนสตรัคเตอร์ Java ของคุณ หากคุณต้องการได้รับความเข้าใจในเชิงลึกของ Java ให้ดูที่ upGrad Executive PG Program ใน หลักสูตร Full Stack Development หลักสูตรนี้ออกแบบมาสำหรับมืออาชีพด้านการทำงานและมีการฝึกอบรมและความช่วยเหลือด้านงานอย่างเข้มงวดกับบริษัทชั้นนำ

มัลติเธรดใน Java คืออะไร?

Multithreading เป็นแนวคิดใน Java ซึ่งงานต่างๆ ถูกดำเนินการพร้อมกัน อนุญาตให้โปรแกรมทำงานหลายอย่างพร้อมกัน แทนที่จะรอให้งานเดียวเสร็จ เป็นหนึ่งในหัวข้อยอดนิยมของนักพัฒนา Java และ Java Multithreading เป็นหนึ่งในคุณสมบัติที่ทรงพลังของจาวา มันใช้ CPU อย่างมีประสิทธิภาพด้วยการรันหลายเธรด Java มีโครงสร้างพิเศษที่เรียกว่าเธรด เธรดนั้นเป็นกระบวนการของซอฟต์แวร์ที่สามารถรันคำสั่ง Java bytecode ตามลำดับโดยอำเภอใจ การดำเนินการของแต่ละเธรดเป็นอิสระจากเธรดอื่น นักพัฒนาสามารถสร้างเธรดใหม่ได้ตลอดเวลา และ JVM จะจัดการการดำเนินการของเธรดนี้ ซึ่งช่วยในการพัฒนาแอปพลิเคชันที่ปรับขนาดได้สูงและตอบสนองได้ดี

อินเตอร์เฟสที่รันได้ใน Java คืออะไร?

อินเทอร์เฟซที่เรียกใช้ได้ใช้เพื่อเขียนแอปพลิเคชันซึ่งสามารถเรียกใช้ในเธรดแยกต่างหาก คลาสใดๆ ที่ใช้อินเทอร์เฟซที่รันได้จะเรียกว่าเธรด รหัสของเธรดถูกเรียกใช้งานโดยล่ามหลังจากเริ่มเธรด คุณสามารถใช้อินเทอร์เฟซที่รันได้และสร้างโปรแกรมมัลติเธรดของคุณเอง มีสองวิธีในการใช้อินเทอร์เฟซนี้ อันแรกคือโดยใช้คลาสย่อยของเธรด อีกวิธีหนึ่งคือการแทนที่เมธอด run()

การทำงานแบบมัลติเธรดทำงานอย่างไร