Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com Sinkronisasi Thread As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com.

Presentasi serupa


Presentasi berjudul: "As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com Sinkronisasi Thread As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com."— Transcript presentasi:

1 As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com
Sinkronisasi Thread As’ad Djamalilleil

2 Konkurensi Ketika kita menjalankan dua atau lebih thread dalam sebuah program, bisa terjadi situasi dimana beberapa thread mencoba mengakses sumber daya yang sama sehingga menghasilkan hasil yang tidak terduga dikarenakan permasalahan konkurensi Dua thread yang berbeda mengakses file yang sama

3 Sinkronisasi Sinkronisasi aksi dari beberapa thread dibutuhkan untuk memastikan bahwa hanya satu thread yang dapat mengakses sumber daya tersebut pada satu waktu Hal ini dapat diterapkan menggunakan sebuah konsep yang diistilahkan dengan monitors Setiap objek di Java dihubungkan dengan sebuah monitor, dimana thread dikunci atau dibuka Hanya satu thread pada satu waktu yang memegang kunci pada sebuah monitor Java menyediakan cara untuk mensinkronisasikan tugas thread menggunakan blok synchronized

4 Sintaks Blok Synchronized
synchronized(objectidentifier) { } objectidentifier adalah sebuah referensi dimana kuncinya terhubung dengan monitor yang mewakili pernyataan yang disinkronkan

5 Contoh tanpa sinkronisasi
public class BankAccount { int accountNumber; double accountBalance; // to withdraw funds from the account public boolean transfer (double amount){ double newAccountBalance; if( amount > accountBalance) { //there are not enough funds in the account return false; } else { newAccountBalance = accountBalance - amount; accountBalance = newAccountBalance; return true;

6 public boolean deposit(double amount){
double newAccountBalance; if( amount < 0.0){ return false; // can not deposit a negative amount } else{ newAccountBalance = accountBalance + amount; accountBalance = newAccountBalance; return true;

7 Contoh dengan sinkronisasi
public class BankAccount{ int accountNumber; double accountBalance; // to withdraw funds from the account public synchronized boolean transfer (double amount){ double newAccountBalance; if(amount > accountBalance){ //there are not enough funds in the account return false; } else{ newAccountBalance = accountBalance - amount; accountBalance = newAccountBalance; return true;

8 public synchronized boolean deposit(double amount){
double newAccountBalance; if(amount < 0.0){ return false; // can not deposit a negative amount } else{ newAccountBalance = accountBalance + amount; accountBalance = newAccountBalance; return true;


Download ppt "As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com Sinkronisasi Thread As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com."

Presentasi serupa


Iklan oleh Google