Posts tagged ‘thread’

Mei 7, 2008

Thread by Example (5): Thread-Specific Data

Semua thread dalam satu program memakai alokasi alamat memory yang sama, yang artinya jika satu thread mengubah isi suatu alamat memory, maka perubahannya akan dapat dilihat oleh thread lain. Hal ini memungkinkan multiple thread untuk beroperasi dengan data yang sama tanpa menggunakan mekanisme interprocess communication.

Namun, kadang kita butuh tiap thread mempunyai alamat data sendiri yang saling independen. Linux menyediakan area thread-specific data, yang memungkinkan tiap thread mempunyai duplikat data yang terpisah, yang dapat diubah tanpa mempengaruhi thread lain.

Objective

Yang dipelajari:

  • menggunakan thread-specific data dalam thread

read more »

Iklan
Mei 7, 2008

Thread by Example (4) : Thread Mutex

Mutex (MUTual EXclusion lock) memberikan solusi dari problem race condition saat beberapa thread berusaha mengakses kode secara bersamaan, sehingga hanya satu thread yang bisa mengaksesnya dalam satu waktu dan thread lain akan menunggu saat thread tersebut telah selesai mengaksesnya. Artinya jika satu thread telah mengunci mutex, dan thread berikutnya berusaha mengunci mutex, maka thread ini akan diblock atau pending, sampai thread pertama membuka kunci mutex.

Objective

Yang dipelajari:

  • inisialisasi mutex
  • lock dan unlock mutex

read more »

Mei 5, 2008

Threads by Example (3): Threads semaphore

Dalam artikel ini akan dibahas tentang metode sinkronisasi antar thread menggunakan semaphore. Semaphore ini digunakan untuk menjaga suatu rutin kode sedemikian sehingga hanya satu thread yang bisa mengeksekusinya dalam satu waktu (dalam hal ini semaphore yang digunakan adalah binary semaphore).

Objective

Yang dipelajari:

  1. mengimplementasikan semaphore di thread
  2. inisialisasi semaphore
  3. menggunakan blocking sem_wait
  4. menggunakan non-blocking sem_trywait
  5. menggunakan sem_post
  6. menggunakan sem_getvalue

read more »

April 25, 2008

Threads by Example (1): Creating threads

Habis baca e-book Advanced Linux Programming, bab 4 tentang threads. Di artikel ini, saya mencoba menulis point penting dengan contoh kode yang menggunakan threads, khususnya cara create threads.
Dengan threads memungkinkan suatu program melakukan lebih dari satu pekerjaan dalam satu waktu (bersamaan).
Hubungan antara program, process dan thread adalah bahwa satu program menjalankan satu atau lebih process, dimana tiap-tiap proses menjalankan satu atau lebih threads. Jika satu program dijalankan, Linux akan membuat setidaknya satu process dengan satu thread.

Objective

Yang dipelajari:

  1. membuat 2 buah thread
  2. melewatkan parameter ke fungsi thread
  3. menggunakan pthread_join untuk menunggu thread menjalankan fungsinya
  4. bahwa fungsi thread dijalankan asinkron

read more »