ส่วนต่อประสานที่รันได้ใน Java: การนำไปใช้ ขั้นตอน & ข้อผิดพลาด
เผยแพร่แล้ว: 2021-05-02สารบัญ
บทนำ
อินเทอ ร์ เฟซที่รันได้ ใน Java คืออินเทอร์เฟซที่อินสแตนซ์สามารถเรียกใช้เป็นเธรดได้ ขณะทำงานกับ Threads อินเทอร์เฟซที่รันได้จะทำหน้าที่เป็นองค์ประกอบหลักของภาษาการเขียนโปรแกรม Java คลาส Java ที่สร้างขึ้นเพื่อรัน Threads ต้องใช้อินเทอร์เฟซนี้ บทความนี้จะช่วยให้คุณเข้าใจอย่างลึกซึ้งเกี่ยวกับ อินเทอร์เฟซที่รันได้ใน Java และกระบวนการนำไปใช้
Runnable Interface ใน Java คืออะไร?
อินเทอร์เฟซที่รันได้คืออินเทอร์เฟซที่มีเมธอดเดียว โปรแกรม Java กำหนดเมธอดเดียวนี้ในแพ็คเกจ java.lang และเรียกใช้เมื่อเรียกใช้คลาสเธรด มีเทมเพลตสำหรับอ็อบเจ็กต์ที่คลาสสามารถใช้งานได้โดยใช้เธรด คุณสามารถใช้ อินเทอร์เฟซที่รันได้ใน Java ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- การใช้เธรดคลาสย่อย
- เอาชนะเมธอด run()
Java ไม่อนุญาตให้มีการสืบทอดหลายรายการในโปรแกรม คุณสามารถขยายได้เพียงคลาสเดียวเท่านั้น และเมื่อคุณขยายคลาสของเธรด คลาสนั้นจะใช้หน่วยความจำ เวลาในการคำนวณ และทรัพยากรอื่นๆ มากขึ้น ดังนั้นจึงเพิ่มค่าใช้จ่ายในการใช้วิธีการเพิ่มเติม จากสองตัวเลือกข้างต้น ควรใช้อินเทอร์เฟซที่รันได้เพื่อสร้างเธรด ในการดำเนินการดังกล่าว คุณต้องจัดเตรียมการใช้งานสำหรับเมธอด run()
ขั้นตอนในการสร้างเธรดโดยใช้ Runnable Interface ใน Java
ทำตามขั้นตอนต่อไปนี้เพื่อสร้างเธรดโดยใช้ อินเทอร์เฟซที่รัน ได้ ใน Java
- สร้างคลาสเธรดที่จะใช้อินเทอร์เฟซที่รันได้
- ในคลาสเธรด เขียนฟังก์ชันเพื่อแทนที่เมธอด run()
- สร้างอินสแตนซ์ของคลาสเธรด
- อินสแตนซ์ของเธรดมีตัวสร้างที่ยอมรับอ็อบเจกต์ที่รันได้ ส่งผ่านวัตถุนี้เป็นพารามิเตอร์ไปยังอินสแตนซ์ของเธรด
- สุดท้าย เรียกวิธีการเริ่มต้นของอินสแตนซ์ของเธรด
อ่านเพิ่มเติม: แนวคิดและหัวข้อโปรเจ็กต์ 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()