Kenapa method stop() , suspend(), dan resume() pada thread java sudah tidak di anjurkan lagi untuk di pakai ?
Method stop ( ) itu tidak di anjurkan digunakan lagi dan sudah deprecated karena pemakaian method ini sangat berbahaya. Saat kita memanggil method stop ini akan menyebabkan thread yang sedang berjalan akan berhenti, terlepas dari kemungkinan masih ada resource yang dipegang. Nah, apabila langsung dipanggil method stop ( ) ini, maka bisa menyebabkan terjadinya deadlock, jadi resource yang dipakai namun belum dilepas tidak akan bisa dipakai untuk proses yang lain. Akibatnya, proses lain yang sedang menunggu resource tersebut juga tidak akan dapat berjalan. Inilah yang dinamakan deadlock.
Why is Thread.stop deprecated?
Because it is inherently unsafe. Stopping a thread causes it to unlock all the monitors that it has locked. (The monitors are unlocked as the ThreadDeath exception propagates up the stack.) If any of the objects previously protected by these monitors were in an inconsistent state, other threads may now view these objects in an inconsistent state. Such objects are said to be damaged. When threads operate on damaged objects, arbitrary behavior can result. This behavior may be subtle and difficult to detect, or it may be pronounced. Unlike other unchecked exceptions, ThreadDeath kills threads silently; thus, the user has no warning that his program may be corrupted. The corruption can manifest itself at any time after the actual damage occurs, even hours or days in the future.
http://java.sun.com/j2se/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html
0 Komentar untuk "Kenapa method stop() , suspend(), dan resume() pada thread tidak di gunakan lagi ?"