Sinkronisasi, notify() dan notifyAll(), siapa membangunkan siapa?

“Bahwasanya sebuah resource bisa digunakan secara bersama-sama (sharing) tidak hanya oleh dua thread tetapi bisa banyak thread”. Ilustrasinya mungkin bisa dibayangkan pada WC umum (ahaha..):

Ketika thread A memakai resource WC, maka thread-thread yang lain harus menunggu (wait) thread A selesai memakai WC. Setelah A selesai, dia membuka pintu WC yang memberi tanda pada semua thread yang lain (notifyAll) bahwa WC sudah free of charge. Thread-thread yang lain pun berebut untuk mendapatkan hak berikutnya untuk memakai WC.

Dalam praktek Java, thread mana yg memperoleh hak tergantung dari JVM.

Notify() dan notifyAll() hampir sama, hanya saja pada notify() JVM hanya membangunkan salah satu thread secara random.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s