Pages

Selasa, 18 November 2014

Thread -again-

Apa itu thread? secara garis besar thread adalah: 
  • sesuatu yg berjalan dlm prosesor 
  • bag yg lebih kecil dr sebuah proses 
  • sekumpulan instruksi yg berjalan sekuensial

Thread bisa dibuat sebagai multithread yg tujuan pembuatannya sama dengan multiproses. Multithread lebih dianjurkan daripada multi proses karena waktu pembuatannnya lebih cepat

contoh 1p1t: ms-dos
    1pmt: jvm
    mp1t: unix tahun enam puluh-an
    mpmt: windows/os x/ubuntu


ciri2 proses:
- memiliki space sndiri utk process mage
- tdk dpt mengakses ruang lain d memori yg menjadi milik proses lain

ciri2 thread:
pny space sndiri TAPI bisa mengakses space lain || ada space yg berhak diakses oleh thread2

versi mini dr sbuah proses ,pny thread state jg dll.


keuntungan thread
lebih cepat dan efisien


contoh aplikasi multiple thread: mozilla firefox

per tab yg muncul adl per thread

kalo google chrome:
per ta yg muncul adl proses


knp google chrome pake multi proses? krn lebih aman


pake multi proses + multithread = APACHE
fungsi: file bs diakses d sluruh dunia

ctg penggunaan thread
1. foreground & background work
2. asinkronous prosessng
3. speed of eksekusi

thread state:
1. spawn  >dibuat os
2block > nunggu event
3unbloc
4finish


user lvl thread
ciri2: kernel tdk tahu thread. krn yg memantau adl library lain

keuntungan:
thread switching tdk butuh kernel mode privileges
dpt brjalan d berbagai os

kerugian:
1 thread brocked, thread lain jg sama yg satu proses
2 thread d proses yg sama tdk dpt berjalan pd dua prosesor



kernel level thread
ciri2
yg mantau kernel

keuntungan
bs jln d proses yg berbeda
kernel routines bs multthreaded

kerugian
memperlambat
melibatkan kernel apa2





hyer lvl thread
ada yg pake user, ada yg pake kernel




THREAD PROGRAMMING

thread di linux
menggunakan POSIX Standard Thread API
dikenal dg nama pthread

d compile dg option:
linking//kayak include

pmbuatan thread:
type var: pthread_t


fungsi buat thread:
int pthread_create<pthread_t .thread , const thread_attr_T .attr, void .<.start_routine> <void .>,void.arg>;

parameter
1. thread ID
2. thread atrribut /NULL kalo bingung
3. fungsi yg ingin dijalankan
4. parameter utk fungsi yg dijalanan


bagaimana jika parameter lbh dr satu?
pake STRUCT


menanti thread
thread dijadwal OS
user tdk tahu mana yg jalan duluan

fngsi utk menunggu eksekusi
int pthread_join
parameter:
1 thread id yg diunggu
2. var utk enimpan return value

Tidak ada komentar:

Posting Komentar

silahkan di komen ya, blog ini adalah dofollow, jadi kalau kamu ninggalin komentar blog ini otomatis memberi backlink ke kamu :)

Pengunjung yang baik selalu meninggalkan jejak :)