Harus kita bedakan dulu, dari sudutpandang mana kita ngomongi task, atau thread.
Kalo kita ngomong dari sudut pandang aplikasi/java, maksud task dan
thread bisa berbeda
dengan kalo ngomong task dan thread dari sudut pandang processor.

Dari sudut pandang processor, thread adalah perlakuan processor atas
sekumpulan task. Pada prinsipnya, processor mempunyai suatu "process
cycle" yang berjalan terus menerus menjalankan sebuah task permanen
"Interrupt Handler". Cycle ini disebut thread. Agar sebuah task dapat
dilakukan,Interupt Handler akan mendaftarkan alamat instruksi task
tersebut kedalam process cycle. Atau disebut dengan "interupt hook".

Setelah buah task dijalankan, "interupt hook" akan dilepas. Jadi dalam
satu thread/process cycle, ada banyak interupt yang "hook-in" dan akan
dijalankan secara sequencial. Ini disebut dengan multi-tasking. Satu
process cycle bisa beberapa task dilakukan. Saya tahu yang begini ini
dari pengalaman saya bikin program untuk ARM processor.

Komputer dengan "pararel processor" bisa melakukan 2 atau lebih
process/cycle secara bersamaan , maka sistem tersebut disebut dengan
multi threading. Interupt handler bisa membuat "interupt hook" pada
cycle yang diinginkan tanpa menggangu cycle yang lain.
Untuk arsitektur x86, ada instruksi assemby "LOCK" yang dipergunakan
untuk me-lock process buffer (Internal memory buss) agar tidak
digunakan oleh process/thread lain. Instruksi ini digunakan oleh OS
yang support full-multithreading (pararel processor).

Komputer dengan 1 processor hanya bisa sampai ke tahap ini. "Single
Threading with Multi Tasking". Untuk aplikasi dengan pararel processor
barulah dimungkinan terjadinya "Multi Threading".

Pada level aplikasi, multitasking hanyalah bersifat "simulated".
Dimana process-process dari aplikasi bisa di-"hook in" kedalam process
cycle dari operating system (Bukan kedalam processor cycle). Processor
pada intinya hanya menjalankan task dari OS. Jadi OS itu punya process
table yang harus dijalankan OS. tabel ini tidak "visible" bagi
processor.

IMHO, Pada level yang lebih tinggi, Java VM, setiap "thread" yang
dimiliki oleh VM diperlakukan mirip-mirip dengan bagaimana OS
memprelakukan aplikasi yang jalan diatasnya. Dengan demikian, bagi OS,
yang terlihat hanya ada 1 task saja ("Java").

- Ferdinand Neman
"Cow who loves java"

On Fri, 22 Oct 2004 14:28:48 +0700, Farid Herman
<[EMAIL PROTECTED]> wrote:
>
> Mungkin kita bermain 'kata2' dulu nih..
>
> apa sih bedanya Thread dengan Task..? Multi-Tasking  = Multi-Threading ?
>
> Saya rasa tidak..
>
> Saya cenderung bilang Word Processor, Donlot File, dan MP3 player itu
> adalah Task.. Task itu bisa digambarkan sebagai 'program yang sedang
> berjalan'..
>
> Sedangkan Thread, asosiasinya adalah proses yg terjadi di dalam sebuah
> Task.. atau dalam bahasa yg lebih dapat dicerna, Thread itu adalah
> menggambarkan proses yg terjadi di dalam sebuah program..
>
> Bayangkan saya sedang membuka web browser.. Setelah kebuka web
> browsernya, saya mengunjungi sebuah situs.. saya ketikin URL nya, lalu
> saya enter, lalu ada gambar animasi yg bergerak2 di pojok kanan atas web
> browser saya itu.. sembari itu, proses koneksi ke internet untuk
> mengambil informasi dari situs itu pun berjalan..
> Web Browser = 1 Task.
> Animasi Progress di pojok kanan atas web browser = 1 Thread
> Koneksi Web Browser ke Google.com melalui TCP/IP = 1 Thread
> (dan masih berkemungkinan sambil browsing saya download file.. ini pun
> dihitung 1 Thread )
>
> Jelas mengenai Thread?
>
> Thread di Java bisa dibuat dengan 2 cara (dapat dipilih salah satu):
> 1. Meng Extends class java.lang.Thread
> 2. Meng-implements interface java.lang.Runnable
>
> Silahkan baca Javadoc untuk bagai mana menggunakan class dan interface
> tersebut..
>
> ^_^
>
> Salam,
> Farid Herman
>
>


Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke [EMAIL PROTECTED]

Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id




Yahoo! Groups Sponsor
ADVERTISEMENT
click here
Web Bug from http://us.adserver.yahoo.com/l?M=295196.4901138.6071305.3001176/D=groups/S=:HM/A=2128215/rand=812487530


Yahoo! Groups Links

Reply via email to