Pen-Sinkronisasi-an Thread — JAVA

  • Method statis Thread.sleep( ) memaksa sebuah Thread untuk meninggalkan keadaan / operasi yang berjalan hingga durasi sleep-nya selesai. Thread.sleep(200) membuat sebuah Thread tertidur selama 200 milidetik.
  • Method sleep( ) memberikan sebuah Exception (InterruptedException – Exception yang diinterupsi) sehingga semua panggilan method sleep ( ) HArUS di “bungkus” dengan sebuah TRY/CATCH.
  • Kita dapat menggunakan method sleep () untuk membantu memastikan semua thread mendapatkan kesempatan untuk berjalan/beroperasi, meskipun tidak ada yang menjamin bahwa kapan sebuah thread bangun dan beroperasi pada akhir baris terakhir ia beropeasi. Mungkin saja, contohnya, langsung kembali ke depan. Pada kebanyakan kasus, ketepatan waktu pemanggilan method sleep ( ) adalah yang kita butuhkan untuk menjaga Thread kita saling bergantian dengan baik, tanpa error.
  • Kita dapat memberi nama sebuah Thread menggunakan method setName ( ). Semua thread memiliki nama secara default, tapi memberikan mereka sebuah nama eksplisit dapat membantu kita berada pada jalur thread-thread, khususnya jika kita men-debug nya dengan pernyataan print( ).
  • Kita dapat mempunnyai masalah serius dengan thread jika dua atau lebih thread mempunyai akses ke objek yang sama dalam tumpukan-objek.
  • Dua atau lebih thread mengakses objek yang sama dapat mengakibatkan kerusakan data jika salah satu thread, contohnya, meningalkan keadaan/operasi yang sedang dijalankannya sementara tetap pada pertengahan memanipulasi keadaan / operasi kritis sebuah objek.
  • Untuk membuat objek thread kita AMAN, tentukan pernyataan mana yang seharusnya diperlakukan sebagau satu proses atom. Dengan kata lain, tentukan method mana yang HARUS beroperasi hingga selesai sebelum thread lainnya mengekseskusi method yang sama pada objek yang sama.
  • Gunakan kata kunci synchronized untuk memodifikasi sebuah deklarasi method, ketika kita ingin untuk mencegah dua thread sekaligus mengeksekusi method itu.
  • Setiap objek memiliki sebuah gembok (lock), dengan sebuah kunci tunggal untuk gembok itu. Seringkali kita tidak peduli tentang gembok itu; gembok-gembok memiliki peran yang harus diperhatikan ketika sebuah objek memiliki method synchronized.
  • Ketika sebuah thread mencoba masuk ke method synchronized, thread HARUS memiliki kunci untuk objek itu (objek dari method). Jika kunci tidak tersedia (karena thread lain memegangnya), thread akan menunggu, hingga kunci tersedia.
  • Bahkan jika sebuah objek memiliki lebih dari satu method synchronized, tetap memiliki satu kunci saja. Sekali sebuah thread mengeksekusi sebuah method synchronized pada objek itu, tidak ada thread yang bisa mengeksekusi method synchronized pada objek yang sama. Pembatasan ini akan melindungi data kita dengan mensikronkan method yang ada dari pemanipulasian data.

Thread-Thread — JAVA

  • Sebuah Thread (rangkaian) dengan sebuah huruf-kecil ‘t’ adalah sebuah thread yang terpisah dengan Eksekusi di Java Programming.
  • Setiap Thread pada Java memiliki Tumpukan panggilannya sendiri.
  • Sebuah Thread dengan sebuah bahasa-kapital ‘T’ adalah Class Thread pada java.lang. Sebuah objek Thread mewakili sebuah Thread yang diEksekusi.
  • Sebuah Thread membutuhkan pekerjaan untuk dilakukan. Pekerjaan Thread adalah sebuah contoh sesuatu yang mengimplementasikan Interface Runnable.
  • Sebuah Interface Runnable hanya memiliki sebuah method tunggal, run ( ). Ini adalah method yang akan diletakkan bawah dari panggilan tumpukan yang baru. Dengan kata lain, itu adalah method yang pertama kali dijalankan pada thread baru.
  • Untuk menjalankan sebuah Thread baru, kita butuh sebuah Runnable untuk melewati Constructor dari Thread.
  • Sebuah thread berada di dalam keadaan BARU ketika kita mempunyai sebuah objek Thread yang dipakai tapi belum dipanggil dengan method start ( ).
  • Ketika kita mulai sebuah thread (dengan memanggil Method Start ( ) dari Objek Thread), sebuah tumpukan baru akan dibuat, dengan run ( ) method dari Runnable yang berada di bawah tumpukan. Thread sekarang mulai dalam keadaan RUNNABLE, menunggu untuk dijalankan.
  • Sebuah thread mengatakan untuk menjadi RUNNING ketika Penjadwal Thread dari JVM telah memilihnya untuk menjadi thread yang sedang berjalan. Pada mesin berprosessor tunggal, hanya ada satu Thread yang sedang Berjalan.
  • Kadang sebuah Thread dapat dipindahkan dari keadaan RUNNING ke keadaan TERBLOK (TIdak Berjalan untuk Sementara). Sebuah Thread mungkin Terblok karena ia menunggu data dari sebuah stream (aliran data), atau karena ia telah tertidur, atau karena ia menunggu untuk penguncian Objek.
  • Penjadwalan Thread tidak menjamin untuk bekerja pada cara tertentu, jadi kita tidak dapat memastikan bahwa thread-thread akan bergiliran sesuai keinginan kita. Kita dapat membantu untuk mempengaruhi mengaktifkan pengambilan dengan mengkondisikan thread anda ke keadaan sleep pada waktu-waktu tertentu.