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

Slides:



Advertisements
Presentasi serupa
Try, Catch, Finally Throws
Advertisements

Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
Kelas & Objek.
STATEMENT KONDISI Adalah perintah yang memungkinkan
Universitas Muhammadiyah Malang Fakultas Teknik Jurusan Teknik Informatika Semester Genap Nur hayatin, S.ST.
Package As’ad Djamalilleil
Inheritance (Pewarisan) As’ad Djamalilleil
Selection (pemilihan) As’ad Djamalilleil
Workshop SCS: Java Game Programming
Dasar Exception Handling
Flow Control & Exception Handling
Looping (perulangan) As’ad Djamalilleil
Kondisi dan Pengulangan Sparisoma Viridi dan Suprijadi 1.
PERTEMUAN 4 Penyeleksian kondisi
Pengenalan Pemrograman 1 Versi 2.0 Struktur kontrol.
Modul 1- Review Java.
Praktikum 8 Pemrograman Berbasis Obyek
Flow Control Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2008.
Pengenalan Pemrograman 1 Versi 2.0 Struktur kontrol.
As’ad Djamalilleil Function (method) As’ad Djamalilleil
- PERTEMUAN 4 - PERULANGAN
Flow Control & Looping Pertemuan 4 Pemrograman Berbasis Obyek Oleh Tita Karlita.
Struktur Kontrol Pemilihan
Public class RelasiDemo { public static void main(String[] args) { //beberapa nilai int i = 37; int j = 42; int k = 42; System.out.println("Nilai variabel...");
Struktur kontrol.
OPERATOR LOGIKA.
Try, Catch, Finally Throws
Referensi Bahasa (4) As’ad Djamalilleil
Exception Handling (Penanganan Error)
Statement Control (if dan switch)
PBO Daniel Riano Kaparang, S.Kom., M.Cs
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
Objek-Oriented Programming (OOP)
Pemprograman Berorientasi Objek
STRUKTUR KONTROL.
Struktur Kontrol Pemilihan
Pertemuan 5 Tipe Data, Operator, Tata Bahasa
Intro to OOP Yesi Novia, S.Kom.
Pengambilan Keputusan dan Pengulangan Proses
PERCABANGAN & PERULANGAN DALAM JAVA
BAB XI EXCEPTION HANDLING.
Dosen : Bella Hardiyana, S. Kom
Identifier, Keyword, dan Tipe data
Tipe Data, Variabel, dan Operator
PEMROGRAMAN DASAR DI JAVA
DASAR PEMROGRAMAN JAVA
As’ad Djamalilleil Data Storage As’ad Djamalilleil
Elemen-elemen Dasar Pada Bahasa C++
As’ad Djamalilleil Elemen Dasar Java As’ad Djamalilleil
As’ad Djamalilleil Function (method) As’ad Djamalilleil
As’ad Djamalilleil Class dan Object As’ad Djamalilleil
Kelas & Objek.
Exception Handling (Penanganan Error)
As’ad Djamalilleil Struktur Kontrol (2) As’ad Djamalilleil
Inheritance (Pewarisan)
As’ad Djamalilleil Macam Statement As’ad Djamalilleil
As’ad Djamalilleil Sintaks Dasar As’ad Djamalilleil
As’ad Djamalilleil Package As’ad Djamalilleil
As’ad Djamalilleil Referensi Bahasa (4) As’ad Djamalilleil
Review Materi Java Fundamental
As’ad Djamalilleil Multithreading As’ad Djamalilleil
Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator
As’ad Djamalilleil Looping (perulangan) As’ad Djamalilleil
Tipe Data, Variabel, dan Operator
Selection (pemilihan)
Dasar Bahasa Java.
Flow Control & Exception Handling
Variabel dan Tipe Data.
Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator
Tipe Data, Variabel, dan Operator
Transcript presentasi:

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

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

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

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

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;

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;

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;

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;