Selasa, 29 Desember 2015

Lagi Belajar Multithread nih

MULTITHREADING

Soal:
1. Apa yang kalian ketahui tentang multithreading
2. Buat program sederhana Thread pada java
3. Pada aplikasi apa saja multi threading diperlukan? Jelaskan!
4. Apakah keuntungan MultiThreading ?


Jawaban:
1. Multithreading adalah suatu kemampuan yang memungkinkan beberapa
kumpulan instruksi atau proses dapat dijalankan secara bersamaan dalam sebuah program. Satu kumpulan instruksi yang akan dieksekusi secara independen dinamakan thread. Thread sangat berguna untuk membuat proses yang interaktif; misalnya pada permainan (game).
            Dengan menggunakan sejumlah thread, program tetap dapatmenggerakkan sejumlah objek sembari memberikan kesempatan pemakai untuk melakukan tanggapan melalui keyboard. Web browser merupakan contoh lain penggunaan thread. Tanpa thread, Web browser akan menghentikan segala tanggapan terhadap pemakai ketika perangkat lunak tersebut sedang mengambil isi dari suatu URL.

2.
public class Coba1 extends Thread
{ String nama;
coba1(String nm) { nama = nm ; }
public void run ( )
{ 
for(int i = 0; i<100; i++) { System.out.print (nama); }
} 
public static void main (String args[ ]) {
Thread t = Thread.currentThread(); //mendapatkan thread yg sedang berjalan
System.out.println(t);
t.setName(“Threadku”); System.out.prinln(t); //merubah nama thread
coba1 t1 = new coba1(“A”);
coba1 t2 = new coba1(“B”);
coba1 t3 = new coba1(“C”);
t1.start(); //mejalankan method run
t2.start();
t3.start(); }}

3. Salah satunya adalah Web Server, karena banyak client mengakses server dalam waktu yang bersamaan; Multithreaded dapat membagi tugas antara alokasi koneksi dengan pemrosesan setiap koneksi; Handal, karena masalah dengan satu koneksi tidak akan mempengaruhi koneksi lainnya.

Contoh lain adalah :
Aplikasi client/server dengan program servernya kadang-kadang harus memproses kebutuhan beberapa ratus klien pada waktu yang sama.

4. Keuntungan MultiThreading

Multiprocessing adalah penggunaan dua atau lebih CPU dalam sebuah sistem komputer. 

Multitasking adalah metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya seperti CPU.

Multithreading adalah cara pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen.

Keuntungan dari sistem yang menerapkan multithreading dapat kita kategorikan menjadi 4 bagian:
  1. Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.
  2. Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
  3. Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.
  4. Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataanya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.

Tidak ada komentar:

Posting Komentar