Home | Register | Lupa Password | NEWS :


DIPANEGARA COMPUTER CLUB
BTN Antara Blok C10 No. 2, Makassar

Tidak ada agenda untuk kegiatan

DCCHeader BiruIndahnya Kebersamaan
Intruduce Consep & Behaviour Multithreading Csharp
Intruduce Consep & Behaviour Multithreading Csharp
Oleh: ppyton | Selasa, 15 November 2011 | 1 Komentar Kategori: Pemrograman View 1293

Suatu hari teman Penulis bercerita dengan teman penulis yang lumayan penulis kagumi dan penulis mengeluarkan Topik "Multithreading"..begitupun dengan teman - teman penulis lainnya yang berkecimpungan di develope aplikasi - aplikasi besar dengan listing yg biasa lumayan banyak .saat penulis menanyakan tentang Multithreading ..selalu keluar dari mulut mereka...Apa Itu Multithreading ?? Apa Fungsinya dan gunanya untuk di program ?? Penulis jadi berfikir jika kalian mendevelope aplikasi - aplikasi berbasis GUI yang lumayana memakan banyak proses yang banyak .kalian setidaknya harus memakai konsep Multithreading ini.Bagaikam Mystery yang tersembunyi..layaknya harta karun ...jadi penulis mengambil kesimpulan ternyata masih bnyak teman - teman penlis yang belum tau dengan Multithreading. mungkin kalian pembaca juga ad yang masih belum tau dengan Multithreading ..?? atau kah sudah tau ?? ok .ya bagi kalian yang sudah tau ...mohon di koreksi yah kalau si penulis ad salah dalam kata - kata ataupun listing :) bagi kalian yang belum tau dengan ini atau masih samar mari kita Pecahkan bersama - sama Mystery Of Multithreading ini..ok :)

Multithreading itu Umum di bahasa pemrogramman.rata - rata di bahasa pemrogramman Multithreading sangat Umum di terapkan .ya tergantung juga vendor-vendor yang menyediakan lib2 untuk melakukan Multithreading. Contoh seperti Python,Java,c#,dll.yang penulis pernah coba adalah Implementasi Multithreading pada Python dan C#..Jadi si penulis kasih contoh kayak begini : Anda pasti pernah mengalami bahwa program/aplikasi yang anda buat membutuhkan proses yang banyak..saat aplikasi anda di jalankan pasti anda sangat jengkel melihat program anda berjalan agak lambat!! Sampai - sampai mungkin anda akan menendang Pc atau menumbuk2 laptop anda karena kesal..Selamat !! anda punya kabar gembira...Multithreading akan menolong anda..!! hah ...bagaimana caranya ?? Wah semakin penasaran dan bingung yah ??(bagi yang belum tau..ok2 ..Mari kita berkenalan !!)   
   
Thread !!?? or What is Thread ??

Nah Jika kita pecahkan kata Multithreading ini ad kata yang terbentuk yaitu "Thread"..jadi sebelum masuk ke pengertian Multithreading kita harus tau dulu apa itu Thread ?? Karena ini lah intinya ..

Banyak Definisi penjelasan tentang thread sampai penulis sendiri Pusing.jadi penulis akan coba membahasakan dengan pemahaman penulis sendiri.jadi si penulis bisa membahasakan Thread seperti begini : Setiap aplikasi berjalan dengan setidaknya mempunyai satu thread. Jadi apa itu thread? Sebuah thread tidak lebih dari sebuah proses.di mana setiap thread merupakan jalan dalam waktu kehidupan seseorang contohnya.Jika kalian mengacaukan thread itu, maka Kalian akan mengganggu kehidupan atau mengubah proses kehidupan seseorang.nah Pada komputer, thread adalah alur kontrol dari suatu proses.atau sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara teratur dengan proses lainnya.Proses melakukan setiap langkah-langkah/intruksi yang berurutan, setiap intruksi untuk mengeksekusi baris kode/listing - listing program.Nah Karena langkah-langkah yang berurutan itu, setiap langkah membutuhkan jumlah waktu tertentu. Waktu yang dibutuhkan untuk menyelesaikan serangkaian langkah adalah jumlah waktu yang dibutuhkan untuk melakukan setiap langkah pemrograman.Nah itu menurut cernaan si penulis ..penulis mencoba untuk menjelaskan dengan bahasa yang lebih di mengerti tapi jika kalian masih belum mengerti lagi ..silahkan sisipkan komentar di bawah .ok :)


Multithreader!!?? or What is Multithreader??

Jadi Multithreader adalah proses melakukan dua pekerjaan secara konkuren atau paralel..sudah mengerti ?? blum ?? ok si penulis akan mencoba menjelaskannya secara jelas lagi ..jadi kebanyakan aplikasi pemrograman(kecuali untuk embedded system) adalah single-threaded. yang berarti hanya ada satu thread di seluruh aplikasi.kalian tidak akan pernah bisa melakukan perhitungan A sampai menyelesaikan perhitungan B. Sebuah program dimulai pada langkah 1 dan berlanjut secara berurutan (langkah 2, langkah 3, langkah 4) langkah terakhir contoh (langkah 10). Sebuah aplikasi multithreaded memungkinkan Anda untuk menjalankan beberapa thread, setiap thread yang berjalan dalam prosesnya sendiri. Jadi secara teoritis Anda dapat menjalankan langkah 1 dalam satu thread dan pada saat bersamaan kita jalankan langkah 2 di thread lain.Pada saat yang sama Anda dapat menjalankan langkah 3 di thread sendiri, dan bahkan langkah 4 di thread sendiri. Oleh karena itu langkah 1, langkah 2, langkah 3, dan langkah 4 akan dijalankan secara bersamaan. Secara teoritis, jika semua empat langkah waktu sekitar waktu yang sama, Anda bisa menyelesaikan program Anda dalam seperempat dari waktu yang dibutuhkan untuk menjalankan sebuah thread tunggal (dengan asumsi Anda memiliki mesin prosesor 4). Jadi mengapa tidak setiap program di gunakan method multithreaded?Karena bersama dengan kecepatan, Anda menghadapi kompleksitas. Bayangkan jika 1 langkah entah bagaimana tergantung pada informasi dalam langkah 2. Program ini mungkin tidak berjalan dengan benar jika langkah 1 selesai menghitung sebelum langkah 2 atau sebaliknya.ini lah kendalanya..ok sudah mengerti ?? ya kl sudah bagus ...kl belum ok tenang si penulis akan berikan lagi analogy supaya kalian lebih paham...

Analogy Of Multithreading

Cara lain untuk memahami multithreading adalah dengan cara mempertimbangkan/membandingkan dengan tubuh manusia. Masing-masing organ tubuh (jantung, paru-paru, hati, otak) semua terlibat dalam proses. Setiap proses berjalan secara bersamaan. Bayangkan jika masing-masing organ berjalan dalam sebuah/satu proses saja: pertama hati, maka otak, maka hati, lalu paru-paru. Kita mungkin akan terjatuh dan mati. Jadi tubuh manusia adalah seperti satu aplikasi multithreading besar. Semua organ adalah proses berjalan secara bersamaan, dan semua proses ini tergantung pada satu sama lain. Semua proses ini berkomunikasi melalui sinyal saraf, aliran darah dan memicu kimia. Seperti dengan semua aplikasi multithreading lainnya,tubuh manusia sangat kompleks. Jika beberapa proses tidak mendapatkan informasi dari proses lainnya, atau proses tertentu memperlambat atau mempercepat, kita berakhir dengan masalah medis. Itu sebabnya (karena dengan semua aplikasi multithreading) Proses ini perlu disinkronkan dengan baik supaya berfungsi secara normal.


      
 Keuntungan dari Multithreading/What is the Profit Of Multithreading


Apa Sebenarnya Keuntungan lain dari Multithreading.

1.     Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.

2.     Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama.

3.       Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
  Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
 

Kapan di gunakan Multithreading...??


Mulithreading paling banyak atau sering di temukan/gunakan saat dalam situasi di mana Anda ingin program anda berjalan lebih efisien.atau Biasanya kita membuat program, secara default program kita menggunakan single – thread. Dimana program tersebut menjalankan satu Task/Tugas pada satu waktu, dan kita tidak bisa memaksa program tersebut untuk menjalankan tugas yang lain ketika proses belum selesai. Tetapi, dengan adanya Multi – Threading, kita dapat memecahkan masalah tersebut, yaitu membuat program dimana dapat menjalankan Tugas yang lain tanpa perlu menunggu proses yang lain selesai.  Sebagai contoh, katakanlah Form Program Anda mengunakan method (katakanlah method_A) di samping itu dia memakan waktu lebih dari satu detik untuk running dan kebutuhan untuk runningnya berulang-ulang.Nah, jika seluruh program berjalan di thread tunggal/satu thread sj, Anda akan melihat saat-saat anda menekan tombol/button Form aplikasi anda dan tidak bekerja dengan benar/lambat prosesnya, atau saat anda mengetik/mengisi Form aplication anda atau mengisi inputan dari text console/console aplication anda.dan Anda merasa agak lamban. Jika method_A adalah komputasi intensif cukup, Anda bahkan mungkin melihat bagian tertentu dari jendela form application anda tidak bekerja sama sekali. Ini perilaku program yang sangat buruk ini merupakan tanda pasti bahwa saatnya Anda perlu melibatkan  multithreading dalam program Anda. Skenario lain yang umum di mana Anda akan perlu threading adalah dalam sistem pesan. Beberapa threading juga dapat digunakan dalam mode jalur assembler di mana beberapa proses berjalan secara simultan. Misalnya sekali proses mengumpulkan data dalam thread, filter proses satu data, dan satu proses sesuai dengan data terhadap database. Masing-masing skenario adalah penggunaan umum untuk multithreading dan secara signifikan akan meningkatkan kinerja aplikasi serupa yang berjalan dalam thread tunggal.

Problem dengan Threading/Masalah Sebuah threading


Jika setiap proses dalam program anda adalah saling eksklusif - yaitu, tidak ada proses yang tergantung,
 
maka beberapa threading akan sangat mudah di terapkan dan sangat sedikit masalah akan terjadi. Setiap proses akan berjalan bersama dan tidak mengganggu proses lainnya. Namun, ketika lebih dari satu proses perlu membaca atau menulis memori yang digunakan oleh proses lain, masalah dapat terjadi. Sebagai contoh katakanlah ada dua proses, proses #1 dan proses #2. Kedua proses berbagi variabel X. Jika proses thread #1 untuk pertama kali menulis/mengisi variabel X=5.dan thread #2 berikutnya menulis atau mengisi variabel X=-3, nilai akhir dari X adalah -3.Namun jika proses #2 pertama kali menulis variabel X=-3.dan lalu proses #1 menulis variabel X=5, nilai akhir dari X=5. Jadi Anda lihat, jika proses yang memungkinkan Anda untuk mengatur X tanpa sepengetahuan pengetahuan proses # 1 atau proses # 2, X dapat berakhir dengan nilai akhir yang berbeda tergantung di mana X pertama kali di proses.Dalam program threaded tunggal, tidak ada cara lain, karena segala sesuatu akan berjalan secara berurutan. Dalam program threaded tunggal, karena tidak ada proses yang berjalan secara paralel, X selalu diset dengan metode proses #1 pertama,(jika #1 di set pertama) dan kemudian ditetapkan dengan metode # 2.Tidak ada supraise dalam program threaded tunggal,hanya langkah demi langkah. Dengan program mulithreading, dua Thread dapat memasukan nilai suatu code pada waktu yang sama, dan mendatangkan malapetaka pada hasilnya. Masalah dengan Thread adalah Anda perlu beberapa cara untuk mengontrol satu thread untuk mengakses sedikit shared memori saat thread lain berjalan pada saat yang sama yang memperbolehkan kita untuk memasukan kode yang sama dan memanipulasi data bersama.



Thread dengan Baik


Dalam program kita.kita memaksa satu thread untuk menunggu di dalam blok kode kita sedangkan thread lain sedang menyelesaikan tugasnya. Kegiatan ini, yang dikenal sebagai Thread blocking atau sinkronisasi thread, memungkinkan kita untuk mengontrol waktu simulasi thread berjalan di dalam program kita. Dalam C# kita mengunci pada bagian tertentu dari memori (biasanya sebuah instance dari objek) dan tidak membiarkan setiap thread lain untuk memasukkan kode di object memori sampai thread lain selesai mengunakan object ini.

Example Code Using Multithreading In Microsoft Visual C#

Yah ..cukup teorinya dan embel2nya ...mari sekarang kita Praktek !! Lets Rockn Roll ...


Alat / Bahan :


    - di sini penulis mengunakan microsoft visual studio 2010 C#

    - dan Lib Threading C# dari bawaan .NET [System.Threading.Thread]

    - Modus Program : Console Application ....

Nb : di sini Penulis hanya akan menjelaskan code intinya ...Bagaimana menginstal visual studio,membuat console aplication dll ..begini dan begitu karena saya yakin pembaca paham dengan dasar microsoft visual c# kalaupun belum silahkan googling ..anda akan mendapatkan berjuta2 tutorial :) ..
    
Sebelum kita Membuat code nya Mari kita mengenal isi method classnya / libnya Threading C# ini:
Nah di dalam class Lib Threading ini terdapat beberapa Method yaitu :

·           In .NET 4, System.Threading.Thread class mendukung methods dan properti ini:

·           Thread(method) - main constructor untuk membuat thread baru dengan metode eksekusi yang ditetapkan sebagai delegasi ThreadStart.

·           CurrentThread - Static property untuk mendapatkan thread yang sedang berjalan.

·           IsAlive - Property untuk mendapatkan nilai yang menunjukkan status eksekusi thread

·           Name - Property untuk mendapatkan dan menset nama dari sebuah thread.

·           ManagedThreadId - Property untuk mendapatkan sebuah indentikasi unik thread yang di kelolah saat ini.

·          Sleep(length) - Static method untuk mensuspend pemanggilan thread untuk specified milliseconds.

·          Start() - Method untuk memulai mengeksekusi thread. thread yang di panggil akan melanjutkan eksekusi sendiri tepat setelah thread baru di mulai

·          Abort() - Method untuk mengakhiri thread.

·          Join() - Method untuk memblock thread yang di panggil sampai thread ini berakhir.

 Ok di karenakan jumlah kata yang di batasi dalam postingan jadi untuk code-code dan penjelasan kalian bisa melihatnya di http://jimmyromanticdevil.wordpress.com/2011/07/06/c-intruduce-multithreadingmake-your-code-run-fast/

 

berita terkait

1 KOMENTAR
" mantaps...... "
dikomentari oleh: sate, 15 November 2011 || 22:46:13

KOMENTAR ANDA
Nama
Website/Email
Komentar
 
Captcha Sepakbola
Apakah anda manusia?Lebih baik lagi kalau anda menyukai sepak bola
Sebutkan pemain sepak bola disamping:

Captcha Sepakbola by codingwear
KATEGORI


POPULER
  


shoutmix
12 Mei 2012 | 10:39:21
kasi tahu gak yah :
apa kabar semua???
09 Mei 2012 | 15:41:47
TukangSedotWC :
08 Mei 2012 | 20:17:29
Patris :
haiiiii ka' sdh aku pasang bannerx tu, banner ku tolong d'pasang jga,http://patrisbluesky.blogspot.com/
08 Mei 2012 | 03:11:17
adi :
hy
08 Mei 2012 | 03:11:11
adi :
hy
05 Mei 2012 | 14:51:28
FRB :
03 Mei 2012 | 11:46:01
manny :
kangen basecamp...
02 Mei 2012 | 02:42:21
Muhammad Ikhsan HR :
21 April 2012 | 23:53:35
nine9 :
21 April 2012 | 15:55:28
Zuhry :
20 April 2012 | 22:46:41
ABIE :
20 April 2012 | 22:44:16
ABIE :
MALAM SMUA,,,APA KBAR
20 April 2012 | 12:33:05
onhe :
20 April 2012 | 12:32:48
onhe :
19 April 2012 | 17:05:38
gyn :
sapa deh... haii decece
14 April 2012 | 18:44:24
onhe :
13 April 2012 | 03:05:18
Anjaz :
09 April 2012 | 16:37:06
sate :
solusi yang mana mas..
09 April 2012 | 14:47:13
panoel_laaros :
bos solusi masala.na kok gak di tulis jga
09 April 2012 | 14:47:04
panoel_laaros :
bos solusi masala.na kok gak di tulis jga
Show Form Hide Form

Nama :

http://

Message :



   

09 April 2012
Share The Code With Programming
STMIK Dipanegara Makassar
12 Februari 2012
IT For The Bright Future
Semua Sekolah
07 Januari 2012
Seminar [Android Is Easy - From Beginner To Expert]
Gedung PKP Unhas (Universitas Hasanuddin) - Jl. Perintis Kemerdekaan KM.9



  • Hacker Curi Data Apple, Microsoft dan Pemerintah AS

  • Seputar Permission File di PHP

  • Orang yang Sering Buka Internet Cenderung Panjang Umur

  • Mouse Scanner

  • RSS Follow us on Twitter Become our friend on Facebook One-X Mobile Preferred for IP Office, Aplikas



INFORMASI
512840
Pengunjung hari ini : 221
Total pengunjung : 40927
Hits hari ini : 6220
Total Hits : 512840
Pengunjung Online: 10
38.107.179.214

GaleriFoto Dipanegara Computer Club - OFFCIAL WEBSITE

FIND US:
Facebook | Hubungi Kami | Home
DCC | Created By Crew DCC | Copyright © 2011
Inspirated Template by Kiwilstudo | Griyagaya | SandBOX | Best Performance : Firefox | Google Crome