saya pernah membuat sebuah program simulasi, dan dalam pembuatan program tersebut ada banyak proses yang berjalan. misalkan untuk simulasi antrian kendaraan di jalan tol. mada masing-masing mobil yang masuk ke jalan tol dapat dianggap satu proses tersendiri yang pergerakannya dalam dunia nyata memang berjalan masing-masing tapi dalam simulasi pergerakannya dibuat dengan menganggap seolah-olah mobil tersebut memang berjalan sendiri-sendiri padahal sebenarnya proses yang berjalan hanya satu dan setiap mobil akan patuh terhadap perintah dari satu proses itu.
pendekatan untuk ini biasanya dengan menggunakan thread. setiap mobil akan dianggap 1 thread. dan setiap thread akan berjalan masing-masing sesuai dengan pembagian waktu yang dilakukan oleh komputer terhadap masing-masing thread tersebut.
kelemahan dari hal ini adalah saya tidak punya full control terhadap thread-thread tersebut. karena proses penjatahan thread sangat tergantung dengan keadaan prosesor atau kalau membuat programnya dengan java maka akan tergantung dengan jvm nya. dan kontrol penuh ini menjadi penting saat saya benar-benar ingin mengetahui setiap hal yang terjadi dengan yang disimulasikan.
maka untuk menyelesaikan ini saya menggunakan konsep 1 thread yang digunakan sebagai clock atau timer tunggal dari segala hal yang disimulasikan. dan setiap proses dalam program saya akan ada method seperti jalankanWaktu().
sebagai contoh saat saya ingin mensimulasikan jalannya mobil maka di mobil akan ada method maju() yang jika dipanggil akan memajukan waktu di mobil sehingga akan menyebabkan posisi mobil berubah.
dengan cara ini saya akan mendapatkan full control dari segala hal yang ada di simulasi yang saya buat.
oh iya sebagai tambahan saya juga menggunakan trik yang sama pada pembuatan uibooth yaitu pada modul untuk komunikasi dengan smartcard device. mudah2-an cara ini dapat membuat uibooth e-access menjadi lebih stabil dan tidak gampang hang
No comments:
Post a Comment