Multithreading

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:

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.
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.
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.
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.

 

contoh dalam c# :


/*
 * Created by SharpDevelop.
 * User: berna
 * Date: 17/07/2013
 * Time: 9:47
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Threading;
namespace multithreadcsharp
{
 class multythreding
 {
 public void cetakThread2()
 {
 int a = 3;
 for (int i = 0; i < a; i++)
 {
 Console.WriteLine("Data 2");
 Thread.Sleep(100);
 }
 }
 public void cetakThread3()
 {
 int a=5;
 for (int i = 0; i < a; i++)
 {
 Console.WriteLine("Data 3");
 Thread.Sleep(1000);
 }
 }
 }
 class Program
 {

 public static void Main(string[] args)
 {
 Console.WriteLine("coba thread ");
 multythreding uzee = new multythreding();
 uzee.cetakThread2();
 uzee.cetakThread3();
 int a=5;
 for (int i = 0; i < a; i++)
 {
 Console.WriteLine("Data 1");
 }
 Console.Write("selesai");
 Console.ReadKey(true);
 }
 }
}

multhitread c#

 

 

dalam java :


package multhitread;

/**
 *
 * @author berna
 */
class Thrid extends Thread
{

public void cobaThread1()
 {
 try
 {
 for (int i = 0; i < 3; i++)
 {
 System.out.println("Data2");
 Thread.sleep(1000);
 }
 }
 catch(Exception e)
 {

}
 }
 public void cobaThread2()
 {
 try
 {
 for (int i = 0; i < 3; i++)
 {
 System.out.println("Data3");
 Thread.sleep(1000);
 }
 }
 catch(Exception e)
 {

}
 }
}
public class Main {

public static void main(String[] args) {

Thrid t1=new Thrid();
 t1.cobaThread1();
 t1.cobaThread2();
 int a=5;
 for (int i = 0; i < a; i++)
 {
 System.out.println("Data1");
 }
 System.out.println("selesai");
 }

}

multhitread java

 

 

 

Tinggalkan komentar