Hehe, hari ini menyenangkan.. Beberapa hal di pikiranku yang paling membebani diriku telah dilepaskan.. Alhamdulillah..
Apa hal-hal tersebut? Tebak saja…
Hehe, hari ini menyenangkan.. Beberapa hal di pikiranku yang paling membebani diriku telah dilepaskan.. Alhamdulillah..
Apa hal-hal tersebut? Tebak saja…
Beberapa waktu lalu, aku, Javad & Zaky pergi ke Lampung, sebenarnya untuk mengunjungi mas bas, tapi akhirnya jalan-jalan juga di situ. Cuma satu hari sih. Aku uplot 3 foto di sana ke flickr:

Ini foto teluk betung dari atas bukit, di sebelah kiri laut, di latar belakang ada barisan gunung..

Javad & Zaky dilatarbelakangi bukit yang terpotong

Mas Baskoro dengan leher yg masih diperban.
Ingin rasanya main ke sana lagi, tapi tidak cuma satu hari. Ingin juga main ke Riau, ke tempatnya bulik Tities, melalui jalan darat, melihat keindahan ciptaanNya yang terbentang dari Bandung sampai Riau..
Bosan dengan header lama, aku mengubek-ubek file-file foto. Potong, tempel.
Foto di header ini adalah foto keluargaku waktu jalan2. Bapak, ibu dan empat adikku (Abbas, Fathimah, Balqisy dan Nizami). Yang lain ke mana? Azizi di latar depan, kepotong, Zaky yang buat foto ini, aku ada di belakangnya Zaky, dan terakhir Javad nggak ikut jalan-jalan.
Nah, jadi lebih segar, nggak bosen lagi lihat header sebelumnya. Hehehe.
Melihat-lihat arsip blog ini, aku menemukan posting ini. Post pertama di blog ini. Apa tujuan awal blog ini benar2 tercapai ya?….
Keluar dari pintu kamar yang terbuka, melangkahi dinding yang mencuat dari lantai. Aku berada di ‘beranda’ lantai atas rumahku. Ya, kamarku berada di lantai 2, yang hanya ada di bagian belakang rumahku. Bagian lainnya hanya terdiri dari satu lantai.
Rasa penat mendesakku tuk keluar di tengah dinginnya malam bandung, berharap ketenangan menanti di luar sana. Berpisah sejenak dari laptop dan sorotan lampu kamar. Melepaskan penat, mengharap ketenangan di gelap dan sunyinya malam, ditemani bunyi jangkrik dan katak.
Kecewa. Rasa penat itu tak hilang. Kulangkahkan kaki melampaui dinding, kembali ke naungan lampu kamarku. Kututup pintu, tapi keributan itu terlanjur kudengar, tak lagi teredam pintu dan dinding, terabaikan oleh sel-sel sensor penangkap bunyi di kepalaku. Keributan tersebut tetap terdengar; derum suara sepeda motor yang knalpotnya tak standar; gemuruh kereta api di belakang sana; desisan laptopku; bunyi dispenser di dapur.
Aku rindu malam yang sunyi, seperti malam-malam di Gringsing..
Beberapa waktu yang lalu aku mencoba threading di python. Untuk sinkronisasi antar thread, aku mencoba menggunakan Lock yang ada di module threading. Kira2 seperti ini:
import threading, time
class VarWithLock():
def __init__(self, a):
self.a = 0
self.lock = threading.Lock()
class MyThread(threading.Thread):
def __init__(self, v):
threading.Thread.__init__(self)
self.v = v
def run(self):
for i in range(100):
self.v.lock.acquire()
temp = self.v.a + 1
time.sleep(0.01)
self.v.a = temp
self.v.lock.release()
v = VarWithLock(0)
for i in range(5):
MyThread(v).start()
Kode tersebut menghasilkan hasil yang benar (di akhir semua thread selesai berjalan, nilai v.a adalah 500). (Jika tidak ada lock, hasilnya tidak benar karena thread akan berebut mengganti nilai v.a).
Melihat lagi dokumentasi python, aku mencoba untuk memakai with untuk mempermudah penulisan:
# di bagian awal (paling atas) ditambahi
from __future__ import with_statement
# di MyThread.run jadi seperti ini:
with self.v.lock:
temp = self.v.a + 1
time.sleep(0.01)
self.v.a = temp
Lebih simpel kan? Juga tidak usah khawatir mengenai lock yang ter-acquire() tapi lupa di-release(). Tapi hati-hati, bisa salah seperti ini:
with self.v.lock:
temp = self.v.a + 1
if temp == 100:
self.v = VarWithLock(-100)
self.v.a = temp
Kode di atas tidak berjalan dengan benar karena Lock yang di-release() di akhir blok with bisa bukan Lock yang di-acquire() di awal!, sehingga, akan banyak thread yang tetap berhenti karena menunggu lock. Seharusnya kode di atas dibuat jadi seperti ini:
with self.v.lock as lock:
temp = self.v.a + 1
if temp == 100:
self.v = VarWithLock(-100)
self.v.a = temp
Dengan begitu, lock tetap dengan aman di-release() walaupun isi self.v berubah.
Uh oh, tidak terasa sudah februari. Sudah lama aku tidak ‘menyentuh’ blog ini.. karena satu dan lain hal
.
Komentar Terakhir