Mutlithreading

Multi threading adalah sebuah cara pengeksekuisian beberapa program secara bersamaan. saling berbagi sumber daya tetapi dapat dijalankan secara independen.

Keuntungan dari Multi threading adalah :

  • Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang.
  • 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.

C#

using System;
using System.Threading;
namespace OOPpraktikum
{
class Program
{
public static void Main(string[] args)
{
TesThread tes1 = new TesThread("a Thread");
TesThread tes2 = new TesThread("C Thread");
Thread thd1 = new Thread(new ThreadStart(tes1.Thred));
Thread thd2 = new Thread(new ThreadStart(tes2.Thred));
thd1.Start();
thd2.Start();
Console.ReadKey(true);
}
}
class TesThread
{
string nama;
public TesThread(string nm)
{
nama = nm;
}
public void Thred()
{
for (byte i = 0; i<10; i++)
{
Console.WriteLine(nama+" "+(i+1));
Thread.Sleep(1000);
}
}
}
}

multi benerC#

java

package OOPpraktikum;
import java.util.*;

public class MainClass
{
 static Scanner input = new Scanner(System.in);

 public static void main(String[] args)
 {
  TesThread thd1 = new TesThread("a Thread");
  TesThread thd2 = new TesThread("C Thread");

  thd1.start();
  thd2.start();

 }

}

class TesThread extends Thread
{
 String nama;
 public TesThread(String a)
 {
  nama = a;
 }
 public void run()
 {
  try
  {
   for(byte i = 0; i<10; i++)
   {
    Thread.sleep(1000);
    System.out.println(nama+" "+i);
   }
  }
  catch (Exception e)
  {
   // TODO: handle exception
  }

 }
}

multi java

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s