Sinkronisasi dan komunikasi

Posted: Agustus 11, 2012 in JAVA
Tag:,

Di tengah-tengah kesibukan sebagai developer, tetep masih punya semangat untuk bikin coretan. Dari pekerjaan hari ini yang belum kunjung selesai ternyata setelah di analisis lebih dalam ada hubunganya dengan sinkronisai dan komunikasi antara analis dengan stakeholder. Okelah langsung saja pada point yang akan penulis bahas tentang sinkronisasi dan komunikasi pada pemrograman JAVA.

Sinkronisasi

Karena multithreading menyebabkan perilaku asinkron program maka harus terdapat cara untuk memaksakan sinkronisasi saat di perlukan. Contoh jika kita ingin dua thread berkomunikasi dan berbagi satu struktur data maka kita perlu menjamin thread-thread itu tidak saling konflik. Kita harus mencegah satu thread menulis data sementara thread lain juga melakukan aksi terhadap data yang sama, seperti membaca atau menulis.

Java mengimplementasikan cara yang elegen, model sinkronisasi : monitor. Monitor adalah mekanisme kendali yang di definisikan C.A.R Hoare kita dapat menganggap monitor sebagai kotak kecil yang hanya mampu memuat satu thread di dalamnya. Begitu satu thread memasuki monitor, semua thread lain harus menunggu sampai thread itu keluar dari monitor itu. Dengan cara ini monitor dapat digunakan untuk memproteksi asset dipakai bersama agar tidak dimanipulasi oleh lebih dari satu thread pada satu saat yang bersamaan.

Kebanyakan system multithread menyatakan monitor sebagai objek eksplisit  sehingga kita masih di pusingkan dengan pengelolaanya. Java memberikan pendekatan yang lebih bersih dan elegen. Tidak ada kelas monitor, masing-masing objek secara implicit mempunyai monitor yang secara otomatis dimasuki ketika metode yang di sinkronisasi di panggil. Untuk menangani hal ini java menyediakan kata kunci synchronized berikut sample potongan programnya :

Public void printIndex(){

                Synchronized(index){

                                Index++;

                                System.out.println(“index = “ +index);

}

Komunikasi

Karena program multithreading berarti banyak thread, maka kita perlu sarana agar thread-thread saling berkomunikasi. Java menyediakan secara bersih dan cepat untuk komunikasi antar thread dengan metode-metode yang telah dimiliki semua objek.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s