Hallo ketemu lagi sama saya,disini saya akan membeberkan tentang pemrograman serentak(Concurrency) pada JAVA
Java adalah bahasa pemrograman banyak thread, yang artinya beberapa hal bisa dilakukan bersama-sama. Thread
adalah unit terkecil dari eksekusi suatu program. Thread mengeksekusi
rangkaian instruksi satu demi satu. Ketika sistem menjalankan program,
komputer akan membuat thread baru. (Thread dalam konteks ini disebut proses,
akan tetapi perbedaanya tidank penting di sini). Instruksi-instruksi
dalam program akan dieksekusi oleh thread ini secara berantai, satu demi
satu dari awal hingga akhir. Thread disebut "mati" jika program selesai
dieksekusi.
Dalam sistem komputer modern, beberapa thread bisa
tercipta dalam satu waktu. Pada satu saat tertentu, hanya ada satu
thread yang bisa dijalankan, karena CPI hanya bisa melakukan satu hal
dalam satu waktu. (Pada komputer dengan multiprosesor, multicore, dan
hyper-threading, masing-masing prosesor atau core melakukan thread yang
berbeda-beda). Akan tetapi sebenarnya komputer membagi waktu menjadi
bagian-bagian kecil sehingga seolah-olah seluruh thread dijalankan
secara bersama-sama. Pembagian waktu
berarti CPU mengeksekusi suatu thread dalam kurun waktu tertentu,
setelah itu beralih mengeksekusi thread yang lain, kemudian thread lain,
dan seterusnya dan kemudian kembali ke thread pertama -- kira-kira 100
kali per detik. Di mata user, semua thread berjalan pada saat yang sama.
Java
adalah bahasa pemrograman banyak thread. Artinya Java bisa membuat satu
atau lebih thread yang bisa dijalankan secara paralel. Hal ini adalah
bagian mendasar, yang dibuat di dalam core bahasa, bukan
merupakan tambahan (add-on) seperti bahasa pemrograman lain. Tetap saja
pemrogaman dengan banyak thread adalah sesuatu yang tidak mudah.
Penggunaan
thread yang banyak digunakan adalah untuk membuat GUI (graphical user
interface) yang responsif. Pada dasarnya suatu program harus dapat terus
bejalan dan pada saat yang sama tetap bisa menerima input dari user,
menanggapi klik mouse, dan sebagainya.
Thread juga digunakan untuk
mempercepat suatu proses, misalnya kita ingin membuat program yang
menunggu suatu input I/O dari network, dan pada saat yang sama
mengolahnya sehingga proses pengolahan berjalan serentak. Jika program
harus menunggu seluruh input datang baru kemudian melakukan pengolahan,
tentunya akan memakan waktu yang lebih lama, terutama apabila aliran
network lambat atau pengolahannya memakan waktu lama.
Jika kita
memiliki CPU multiprocessor atau multicore, maka menggunakan banyak
thread akan mempercepat eksekusi program, karena masing-masing thread
dijalankan secara terpisah. Misalnya untuk melakukan video encoding
dengan jumlah data besar, jika kita menggunakan seluruh core yang
tersedia maka prosesnya akan dapat diselesaikan dengan cepat.
Tidak ada komentar:
Posting Komentar