The Denny Depok

The Denny Depok

Gosipin IT Bareng Mas Denny Depok Yuk…

The Denny Depok RSS Feed
 
 
 
 

Penjelasan MultiThreading di Javascript

Halo, 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 dikerjainnya cuma beberapa jam seabis sholat subuh.

 

Pertama, cara kerja umum multithread/multiprocess adalah untuk beberapa waktu tertentu suatu fungsi di kerjakan oleh processor. Setelah melewati waktu tertentu, maka konteks akan dialihkan ke fungsi lain. Begitu seterusnya sampai processor kembali menjalankan fungsi yang pernah diberhentikan ditengah jalan tadi dari titik/baris terakhir sebelum konteks di pindahkan ke fungsi lain.

 

Permasalahan yang timbul adalah bagaimana mencatat baris terakhir yang dikerjakan dan bagaimana menyimpan nilai variable yang sedang dipakai dalam fungsi tersebut sehingga ketika fungsi dijalankan kembali masih memiliki state yang sama waktu diberhentikan sementara oleh processor. Biasanya dalam level OS atau virtual machine, tiap konteks dibuat suatu record yang mencatat baris terakhir dan stack yang menyimpan variable-variable fungsi.

 

Dalam implementasi kita ini, kita gak punya akses ke OS/virtual machine untuk memberhentikan suatu fungsi dan mencatat baris terakir yang dikerjakan. Oleh karena itu, solusi satu-satunya (yang kepikiran sama saya) adalah memanggil ulang fungsi tersebut. Memanggil ulang fungsi tentu aja menyebabkan pengerjaan perintah dari awal fungsi. Oleh karena itu fungsi perlu dipermak dengan contoh dibawah ini.

Dari contoh diatas terlihat kita mempergunakan switch dan parameter untuk menentukan dari baris mana kita memulai ulang pelaksanaan fungsi. Ditengah fungsi juga terdapat penambahan “return” untuk menghentikan pelaksanaan fungsi.

 

Diatas adalah contoh fungsi sederhana (yang gak pernah ada fungsi thread mirip kayak gitu :D ), dalam realnya kebanyakan thread melibatkan looping yang memakan waktu. Looping gak bisa sesederhana gitu ubah, karena sifatnya dilaksanakan berulang. Contoh pengubahan yang melibatkan loop :

Jadi konsepnya untuk tiap looping dibuat satu stack switch baru dengan ada assignment untuk mereset step di akhir loop. Jadi kalau misal ada loop didalam loop maka stack switch-nya bertambah.

 

Permasalahan selanjutnya adalah penyimpanan nilai variable. Kalau diimplementasi umum multi thread mempergunakan stack yang di push dengan nilai variable waktu hendak memberhentikan thread dan pop waktu ingin memulai thread, saya mempergunakan metode yang jauh lebih sederhana, yaitu saya membuat kelas baru untuk fungsi thread tersebut dimana variable lokal fungsi jadi variable properti dari kelas. Hal ini memudahkan penyimpanan nilai variable sebab nilai properti kelas otomatis tersimpan walaupun pelaksanaan fungsi sudah ke fungsi lain (hal ini menghilangkan pembuatan penyimpanan ke stack yang rumit). Gambaran perubahan dari fungsi ke kelas dapat digambarkan sebagai berikut :

 

Terlihat diatas saya juga menjadikan parameter step menjadi properti kelas, jadi pemanggilan fungsi run otomatis langsung ke baris dimana fungsi sebelunya dihentikan.

 

Perubahan otomatis fungsi ke kelas yang dipermak baris perintahnya dimungkinkan di javascript sebab ada kelas dewa di javascript yaitu string. Maksudnya semua hal dapat diubah ke string, termasuk fungsi dan kelas yang bisa didapat string kodenya. Contohnya gini :

 

function a()

{

    alert(”dalem a”);

}

 

var aString = “” + a;

alert(aString); // menampilkan source code fungsi a

 

Kemudian tentu aja ada fungsi eval() yang memungkinkan pembuatan kelas secara on the fly.

 

Oh iya, kemarin saya lupa bilang, parser saya naif banget karena mengejar pembuktian konsep aja. Jadi kalo mo gunain harus agak bener mrogramnya, contohnya kalo variable harus dipasangin var, trus penempatan { dan } harus di baris sendiri, kemudian juga hanya mendukung looping dengan while dimana variable loopingnya harus di deklarasiin terlebih dahulu.

 

Emang ini cuma pembuktian konsep sih, dengan harapan ada yang mo ngembangin. Pengembangan yang terpikirkan oleh saya adalah tidak diperlukannya penulisan processMessage() secara manual sehingga otomatis fungsi biasa bisa dijadiin fungsi miltithread. Btw ini juga bisa diimplementasiin ke bahasa lain yang gak punya fasilitas multithread, contohnya actionscript (tetu aja ada penyesuaian).

6 Responses to “Penjelasan MultiThreading di Javascript”

  1. 1
    Kunderemp An-Narkaulipsiy:

    Saya belum sempat membaca kode yang dulu.. :P

    Tapi, dahulu saya pernah lihat JS/UIX yang cukup menarik dan game2 lain buatan tim yang sama (masswerk).

    Itu multi-threading atau tidak yah?

  2. 2
    Wagiman:

    ra mudeng?!

  3. 3
    R. Iqbal:

    “tapi sebelum baca mohon pengertian kalo tehnik ini naif karena dikerjainnya cuma beberapa jam seabis sholat subuh.”

    :) Biasanya memang habis subuh waktu yang Pak Denny paling efektif kan Pak :D

  4. 4
    Immispsats:

    Ciao ragazzi e ragazze,
    Spero di non esserdmi bsagliato a creare il thread qui su #caegory.
    Sono nuovo su questo forum e spero di potere partecipare attivamente.
    A presto http://www.chatt-gratis.net/javachat/imgchtgratis/musica.gif

  5. 5
    jual kaos murah:

    ra mudeng blas?!

  6. 6
    Xforexer:

    Excuse me. Does anybody know how to choose honest Forex EA from fake and a real Forex signals from fraudulent? sorry for inconvinience

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