The Denny Depok

The Denny Depok

Gosipin IT Bareng Mas Denny Depok Yuk…

The Denny Depok RSS Feed
 
 
 
 

Cross Browser MultiThreading dengan JavaScript

Halo…

Kalo kemaren-kemaren saya ngomongin soal menye-menye (yang gak ada artinya) sekarang kita balik lagi ngomongin soal programming !

 

Salah satu hal yang paling dipengenin programmer javascript adalah punya fungsionalitas multi threading. Kalo cari di om Google, banyak banget orang yang nanya dibeberapa forum soal fasilitas multithreading itu. Walaupun banyak pro kontra antara perlu ato tidak javascript punya fasilitas multithread, ada saja terus orang yang nyari.

 

Sewaktu FireFox 2.x menggunakan javascript  1.7, ada yang mengimlementasikan thread dengan konstruk bahasa generator. Anda bisa lihat disini. Tapi permasalahannya javascript 1.7 cuma didukung oleh firefox, bahkan opera yang biasanya paling terdepan belum mengimplementasikan, apalagi IE –> kalo ini sih jangan berharap banyak :P . Akhirnya implementasi yang cerdas diatas jadi gak berguna. Akhirnya saya turun tangan untuk buat implementasi multi thread :D :D :D. Sebenernya idenya udah dari lama sih, bahkan thesis saya awalnya mo gunain ini.

 

Idenya sederhana, jadi gimana caranya jalanin kode yang bisa di suspensi untuk melakukan kode yang lain. Untuk yang sering pake javascript pasti langsung kepikiran sama settimeout. Cuma kalo ngoding manual pake settimeout tentu programmernya cape. Oleh karena itu saya buat lib yang menerima sebuah fungsi, kemudian fungsi tadi saya modifikasi secara otomatis sehingga eksekusi fungsi tadi bisa diinterupt.

 

Jadi mrogramnya seperti dibawah ini :

<script src=”thread.js”></script>

function threadFunc()

{

    // thread command here

    processMessage(); // pass excecution to other thread

    // resume start here

}

 

var thread = new Thread(threadFunc);

thread.run();

 

Jadi agak mirip sama thread di bahasa pemrograman lain kan ? Oh iya, karena di javascript kita gak bisa pake preemtive multitasking, makanya disini pakai cooperative multi tasking. Untuk membuat eksekusi berpindah ke thread yang lain, panggil fungsi (jangan bingung, ini konstruk buatan saya sendiri :D )  :

 

processMessage();

 

Untuk testing, coba buka ke Halaman Test Multi Threading JavaScript.

Kalau misalnya mau download, bisa klik disini : jsthread.zip

 

Oh iya, ini saya dah coba di FireFox 3, IE 8 dan Chrome. Untuk Opera ato FireFox/IE versi lama mohon maaf aja ya, dikomputer saya cuma ada ketiga browser diatas.

 

Untuk dasar teori lengkapnya, saya jelasin kalo ada yang nanya aja, soal agak panjang dan mungkin sebagian besar orang gak tertarik…

10 Responses to “Cross Browser MultiThreading dengan JavaScript”

  1. 1
    silent:

    Untuk dasar teori lengkapnya, saya jelasin kalo ada yang nanya aja, soal agak panjang dan mungkin sebagian besar orang gak tertarik…

    Ceritain dong, kalo gak mau di posting, di comment juga gpp. Ditunggu ya…

  2. 2
    Remo Harsono:

    Tul…ikutan nunggu ahhh…

  3. 3
    Agus Suhartono:

    Jadi agak mirip sama thread di bahasa pemrograman lain kan ?

    saya jadi inget DoEvent-nya VB tempo doeloe

    perkembangan aplikasi web memang smakin pesat aja
    ketika klorofil dkk dirilis, terutama konsep web desktop saya menganggap ini over engineering.
    apa mampu JavaScript di browser menangani hal ini?

    tapi perkembangannya ternyata bagus sekali
    engine JS smakin dikembangkan
    bahkan Eclipse.Org mengeluarkan RAP

    kembali ke MultiThreading
    mengingat fungsi JS yang smakin bertambah
    tidak sesederhana dulu lagi memang MultiThreading diperlukan

    solusi yang diberikan Mas Deny Depok bagus sekali
    walaupun masih menggunakan cooperative multi tasking yang mudah hang
    coba kalau programmer lupa menyisipkan processMessage(); dalam looping, tentu akan hang
    tentu saja hal ini akan membuat kerja programmer lebih berat dengan meneliti tempat-tempat yang harus disisipi processMessage();

    tapi ini nggak masalah mengingat ini solusi yang ada saat ini
    selamat atas ide briliannya

    saya berharap nanti akan ada fitur preemtive multitasking yang native di JS.

  4. 4
    Denny Depok:

    @silent & Remo Harsono

    He..he..he.. sebentar ya, nanti kayaknya saya buat di post aja, soalnya terlalu panjang kalo di comment. 2 hari lagi kedepan ya..

  5. 5
    Denny Depok:

    @Agus Suhartono

    Mas kalo dari group pengembang ecma script (nama official javascript) native threading akan di dukung di versi 3, wah 1.7 aja susah untuk diimplementasi oleh browser lain.

    Memang cooperative multitasking bisa buat hang kalo programernya lupa naro fungsi dispatch, tapi dengan asumsi kalo aplikasi javascript dibuat oleh tim programmer yang kecil biasanya sih gak masalah, karena jarang programmer mo ngerusak programmnya sendiri kan.

    Jujur yang saya implement ini metodenya naif banget, tapi jalan. Dengan asumsi yang koding multitaskingnya gak nakal. Ini juga menghilangkan kerumitan locking shared variable, karena semua perintah (dalam satu statement) dilaksanakan secara utuh, beda dengan preemtive yang memungkinkan terjadi perpindahan konteks eksekusi ditengah statement yang berpotensi menyebabkan inkonsistensi bahkan deadlock.

  6. 6
    Kunderemp An-Narkaulipsiy:

    Pakai Iceweasel v. 2.0.0.3 bisa kok, Bang Deny.

  7. 7
    The Denny Depok » Penjelasan MultiThreading di Javascript:

    [...] kemarin saya sudah janji untuk jelasin metode multi thearding di javascript yang saya post di sini. Dalam post ini saya mo jelasain, tapi sebelum baca mohon pengertian kalo tehnik ini naif karena [...]

  8. 8
    doez:

    thx infonya bos

  9. 9
    enjoync:

    srpmic casino vegas red casino 2008 snoqualmie casino motel .las vegas casino shuttles club casino usa sesame street casino big daddy’s casino .pretend casino paradise 8 casino .ps3 ratchet casino leela goa casino boardwalk casino vegas little creek casino olympia .too toby keith ip casino .Ok, here .see .a search but new orleans harris casino sonesta beach resort and casino may be For soboba casino restaurant too cannery casino hotel hooters casino address Get info on binion casino look may be In tunica grand casino zz top winstar casino wathc Here you search hotel casino lake charles stuff site senecaniagaracasino.com seneca casino mirage casino sold blue heron casino it called crown royale casino lytton san pablo casino belle isle casino mi the aruba resort casino In the riverside spa and casino must be
    macau casino jobs spade casino .This was the need for morongo casino new years or pogo.com casino And soaring eagle casino and resort mt pleasant mi .or .must be .or someone image as tulsa casino jericho casino should not As to naco hotel and casino or richards bay casino cool cat casino bonus codes fiesta casino hotel henderson borgatta casino atlantic city Whith quebec casino age Is the Well .

  10. 10
    Alex Gierut:

    You should definitely take a look at the free $50 bonus being offered at our new Bet Phoenix Casino. Available now at: Bet Phoenix. Good luck!

Leave a Reply

  • buy diet drug
  • oral antidiabetic agents
  • cat hairball remedies
  • effects of allegra
  • viagra or cialis
  • pregnancy and pain medication
  • diabetes cure
  • cheap pain med
  • weight loss supplements that work
  • best body building products
  • drug loratadine
  • canadian pharmacy cialis
  • weight loss pill without a prescription
  • about sleep aid
  • pre diabetes
  • drugs used for high blood pressure
  • yeast infection medication
  • obesity help online
  • wrinkle skin care
  • where to buy soma
  • diet pill approved by fda
  • total health discount
  • kamagra online pharmacy
  • diet for diarrhea
  • skin cures
  • bone and joint health
  • medicine no prescription
  • nicotine blockers
  • new fda approved drugs
  • allergy asthma child
  • order pet med without prescription
  • discount vitamins online
  • help for edema
  • diet supplements distributors
  • generic revatio
  • viagra generic soft tab
  • weight loss systems
  • buy phentermine online no rx
  • xenical for sale
  • foreign medication no prescription
  • european viagra
  • anti wrinkles
  • cat health information
  • prednisone buy
  • viagra money order
  • rheumatoid arthritis latest treatments
  • what does evening primrose oil do
  • breast cancer help
  • pregnancy approved blood pressure drugs
  • blood pressure prevention
  • living with heart failure
  • ambien without prescription
  • order medicine from canada
  • free prescription medication
  • diabetes alternative medicines
  • discount pharmacy no prescription
  • stop smoke
  • no hangover
  • cheap blue pill
  • medical weight loss
  • kamagra cheap
  • herpes varicella
  • viagra purchase on line
  • weight loss programs online
  • bentyl dosing
  • viagra discount online
  • cialis canadian drug
  • chronic sinus infection
  • osteoporosis treating
  • the cost of treating pain
  • pain reliever
  • cures for erectile dysfunction
  • buy tramadol cheap
  • lexapro sleep
  • acomplia online
  • anti depressant medicine
  • augmentin information
  • how prevent progress of arthritis
  • back pain pills
  • what to do lower blood pressure
  • viagra rx
  • proven weight loss pills
  • osteoporosis treating
  • herpes varicella
  • latest smoking cessation drugs
  • osteoarthritis
  • high amount of acid in blood
  • levitra price
  • lopressor drug
  • zantac prevacid
  • cure hair loss
  • obesity medication
  • cheapest place buy viagra online
  • medication for swelling
  • free xanax
  • weight loss programs online
  • natural treatments for insomnia
  • hair loss product treatment price
  • generic for ultram
  • treatment of yeast infection
  • viagra pills
  • atenolol interaction
  • high blood pressure drug treatment
  • weight loss support group online
  • prednisone 10 mg
  • female sexual enhancement creams
  • what is ativan
  • approved cialis fda
  • prilosec order
  • how to stop hair loss
  • how viagra works
  • cheap cialis tadalafil
  • women's natural hair loss cures
  • free weight loss help
  • pet health problems
  • natural teeth whitening
  • phentermine online
  • allegra children
  • raloxifene evista
  • where can i order phentermine online
  • smoking cessation drugs
  • male enhancement enhancement
  • help for constipation
  • discount anxiety drugs
  • pravastatin drug
  • buying medications online without a prescription
  • anti depression drug
  • effects of prilosec
  • how to get big muscles
  • neck arthritis
  • stop smoking tips
  • levitra web sites
  • arthritis australia
  • bactrim dosages
  • verapamil dose
  • coumadin medication
  • knee arthritis
  • cures for hair loss
  • benefits of aspirin
  • online pharmacy discount drugs
  • buy lisinopril
  • cheap estrace
  • increase bust exercise
  • relieve joint pain naturally
  • dental pain relief
  • buy pain meds no prescription
  • penis enlargement result
  • canadian arthritis medication
  • gout in the foot
  • side effects claritin
  • reducing blood pressure
  • stopping blood pressure medicine
  • generic cialis cheap
  • drug generic lipitor
  • diet supplement
  • fungal infection treatment
  • phentermine with no prescription
  • skin infection treatment
  • medication for high cholesterol
  • cheap weight loss pill
  • order diovan
  • hair loss alternative medicine
  • acne skin care products
  • antibiotics chlamydia
  • male erectile dysfunction
  • diabetes and new drugs
  • acne remedies
  • increase male sexual power
  • supplements for dogs
  • free prescription drugs
  • online pharmacies no prescriptions
  • online canadian pharmacy
  • buy inderal
  • medical weight loss
  • cat skin care
  • robaxin dosage
  • chronic itching and swelling in skin
  • generic for actos
  • alcohol celebrex
  • viagra or cealis
  • buy pain medication online
  • hangover help
  • skin solutions
  • stroke prevention programs
  • viagra free pills
  • canada online drug stores
  • muscular strength
  • benefits of aspirin
  • canadian pharmacy cialis
  • effects of phentermine
  • medication lipitor
  • severe headache
  • medications for diabetes treatment
  • clonazepam overdose
  • medication to treat high blood pressure
  • cold sores help
  • online cialis
  • discount allegra
  • medication for high cholesterol
  • vardenafil effectiveness