Pada tutorial Linux Threads kali ini, kita membahas berbagai aspek yang berkaitan dengan thread di Linux.
Dalam artikel ini kita akan fokus pada bagaimana thread yang dibuat dan diidentifikasi. Saya juga akan menyajikan contoh program dalam bahasa C yang akan menjelaskan bagaimana melakukan pemrograman thread dasar.
Identifikasi Thread
Sama seperti proses diidentifikasi melalui proses ID, thread diidentifikasi oleh thread ID. Tapi yang menarik, kesamaan antara keduanya berakhir di sini.
-Sebuah proses ID unik di seluruh sistem di mana, thread ID unik hanya dalam konteks proses tunggal.
-Sebuah proses ID adalah nilai integer tetapi thread ID belum tentu nilai integer. Ini bisa jadi struct.
-Sebuah proses ID dapat dicetak dengan sangat mudah sementara thread ID tidak mudah untuk mencetak.
Poin di atas memberikan gambaran tentang perbedaan antara proses ID dan thread ID.
Thread ID diwakili oleh jenis 'pthread_t'. Seperti yang telah kita bahas bahwa dalam sebagian besar kasus jenis ini adalah struct, sehingga harus ada sebuah fungsi yang dapat membandingkan dua thread ID.
Di atas adalah salah satu fungsi thread thread yang saya sudah jelaskan di update sebelumnya klik di sini.
Pembuatan Thread
Biasanya ketika sebuah program dijalankan dan menjadi suatu proses, dimulai dengan thread default. Jadi kita dapat mengatakan bahwa setiap proses memiliki setidaknya satu thread kendali. Sebuah proses dapat membuat thread tambahan menggunakan fungsi berikut:
#include <pthread.h> int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg)
Fungsi di atas memerlukan empat argumen, mari kita bahas sedikit :
-Argumen pertama adalah alamat jenis pthread_t. Setelah fungsi ini disebut berhasil, variabel yang alamatnya dilewatkan sebagai argumen pertama akan memegang thread ID dari thread baru dibuat.
-Argumen kedua mungkin berisi atribut-atribut tertentu yang kita inginkan untuk mengandung thread baru.
-Argumen ketiga adalah fungsi pointer. Ini adalah sesuatu yang perlu diingat bahwa setiap thread dimulai dengan fungsi dan alamat fungsi dipassing di sini sebagai argumen ketiga sehingga kernel tahu dari mana yang berfungsi untuk memulai thread.
-Sebagai fungsi (yang alamatnya dipassing dalam argumen ketiga di atas) dapat menerima beberapa argumen juga sehingga kita bisa melewati argumen ini dalam bentuk pointer ke tipe void. Sekarang, mengapa tipe void dipilih? Hal ini karena jika fungsi menerima lebih dari satu argumen maka pointer ini bisa menjadi pointer ke struktur yang mungkin berisi argumen ini.
Contoh Program Thread
Berikut adalah program untuk mengecek suatu bilangan yang diinputkan apakah bilangan prima atau bukan
Berikut hasil keluarannya dalam terminal :
Sekian tutorial dari saya tentang pembuatan thread di Linux. Terima kasih sudah membaca.
0 komentar:
Posting Komentar