Friday, February 16, 2007

Java Deprecate method stop of thread

อืมตอนเขียนโปแกรมเกี่ยวกะเธรด พอเราเขียน objectThread.stop(); มันดันมีเส้นใต้สีเหลืองซะงั้นใน netbeans อ่ะ ก็เลยสงกะสัยอ่ะ ลองหาข้อมูลใน doc ของ จาวา เค้าก็บอกว่า มัน unsafe มันไม่ปลอดภัยซะงั้นแล้วเราจะทำไงดีใช้ก็ได้อยู่อ่ะ stop(); แต่มันตะหงิดๆ ยังไงก็ไม่รู้เหมือนกับเราเขียนโปรแกรมห่วยมาก ถ้าเรายังจะดึงดันใช้ stop(); อยู่อีก

- เพราะว่าถ้าเราเรียก thread.stop(); ขณะที่โปแกรมเรากำลังทำงานอยู่อาจส่งผลกระทบต่อการทำงานของโปรแกรมเราด้วย
- วิธีแก้มันก็มีหลายวิธีที่เราจะหลีกเลี่ยงจากการใช้ Stop(); อันหนึ่งของวิธีหยุด thread ก็คือการ interrupt();
- thread จะจบหรือ หมดหน้าที่ของ thread นั้นก็ต่อเมื่อ การทำงานในเมธอด run(); จบลง
- วิธีใช้ interrupt(); ในการหยุด thread ทำได้โดยการ try {} catch (InterruptedExcetpion ex) {} คลอบลูป while(true) ไว้ แล้วเราก็ทำการเรียก thread.interrupt(); จากที่ใหนก็ได้มันก็จะหลุดออกจากลูป while(true) แล้วก็จะเป็นการจบเมธอดรัน ก็คือจบการทำงานของ thread โดยสวัสดิภาพ ^^

public void run() {

try {
while (true) {

String now = MyAccessories.getNow();
System.out.println(now);
Thread.sleep(milliseconds);

}
} catch (Exception e) {
//e.printStackTrace();
System.out.println("Thread stoped...");
}
}

No comments:

Post a Comment

Popular Posts