SpiderS_DangeR Mesaj tarihi: Haziran 10, 2012 Paylaş Mesaj tarihi: Haziran 10, 2012 Şimdi 1 main'in olduğu class var, 2 thread var connection ve tank diye. connection threadinde super loop ile gelen mesajları okuyorum sürekli, tank classı da ekrana kare çiziyo falan. Şimdi yapmak istediğim şey, gelen mesajı tank classına yollayıp eş zamanlı olarak karenin koordinatlarını update etmek. Google yetemedi, nasıl yaparım? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gladmir Mesaj tarihi: Haziran 11, 2012 Paylaş Mesaj tarihi: Haziran 11, 2012 Producer/Consumer Thread communication da iki yaklasim la yapabilirsin. Connection thread in Tank thread ine referans tutar, Tank thread in BlockingQueue da get de bekler, connection thread in den Tank thread queue na message paslar. Burda iki thread in tightly coupled, simple but not elegant. Diger turlu, Main thread in da queue olur, connection thread in consumer tank midir ahmet midir mehmet midir bilmez, bu queue ya feed eder, Tank thread in bu queue dan alir isler isine bakar, simple more elegant. Bir bak, kafana yatmazsa sample code yazarim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
SpiderS_DangeR Mesaj tarihi: Haziran 11, 2012 Konuyu açan Paylaş Mesaj tarihi: Haziran 11, 2012 Peki connection threadinden mainin queuesuna nasıl feed ederim, maini referans olarak mı tutmam gerekiyor connectionda? Ve Tank threadi busy waiting yapmadan nasıl bu queueda yeni mesaj var mı diye kontol edecek? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gladmir Mesaj tarihi: Haziran 11, 2012 Paylaş Mesaj tarihi: Haziran 11, 2012 Ilk once su adami bir oku; http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/LinkedBlockingQueue.html Main icine statik utility methodlari yaz public static void submitNewConsumable (Object consumable); (Bu adami multiple connection thread in varsa senkron yapmak icap eder.) public static synchronized Object getNewConsumable(); submit de, LinkedBlockingQueue ye mal koyacaksin. Bu adam Collection, extra peek poll seklinde methodlarida var, yukaridaki link e goz atinca anlayacaksin. Producer thread in (Connection miydi?), run loop da network den data geldikce Main.submitNewConsumable(artikNeKoymakIstiyorsan) yapacak Consumer thread in, 'blocking' sekilde run loop unda Main.getNewConsumable() uzerinde bekliyor olacak. Olay, get ettigin noktada queue ya yeni adam girinceye o thread blocked olarak bekleyecek. Dikkat etmen gereken nokta bu thread graphics context is yapiorsa yada UI thread i ise dikkatli olman lazim lakin ui thread ini blocklarsan graphics context catlar. Bi calistir sonra refactor edersin. Main den bu utulity metod ve container i sokup, bi CommonMedium singleton i yazip, thread lerin bu adam uzerinden alis veris yapmalarini saglarsin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
SpiderS_DangeR Mesaj tarihi: Haziran 11, 2012 Konuyu açan Paylaş Mesaj tarihi: Haziran 11, 2012 Tamamdır çok sağol (tu) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar