Gunde yaklasik 200-300 tane email gonderiyorum, ve bu emaillerin bir tanesinin ortalama process time'i 5-6sn buluyor.

bu islemleri farkli farkli thread'lere yaptirsam avantaj ve dezavantajlarim ne olur?

isi biten thread'lerin sisteme bir yuku soz konusu mudur? yoksa garbage collector kisa bir surede onlari temizler mi?

soruldu: 27 Eyl '12, 07:38

codestar's gravatar image

codestar
182312
cevap kabul oranı: 15%

değiştirildi: 27 Eyl '12, 08:55

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

Ozcan bey sizin bu konudaki dusuncenizi cok merak ediyorum, cevaplayabilirseniz memnun olurum.

(27 Eyl '12, 09:27) codestar codestar's gravatar image

Kac tane CPU ve cekirdek sahibi iseniz, o kadar thread kullanarak islemi paralelize edebilirsiniz. Örnegin 4 cekirdekli bir CPU'nuz varsa, paralel 4 Thread acabilirsiniz. Her thread kendi cekirdigi üzerinde islem yapacaktir. Ama örnegin 1 CPU'unuz (tek cekirdek) varsa, 10 thread acip, hizli paralel islem yapamassiniz. Bu durumda tek bir CPU oldugu icin thread context switch olacaktir. Bu da islem zamanini uzatir.

Thread run() metodu son buldugunda garbage collector tarafindan temizlenirler.

permanent link

cevaplandı: 27 Eyl '12, 10:13

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

iste aradigim cevapta buydu, cok tesekkurler,

(27 Eyl '12, 10:20) codestar codestar's gravatar image

özcan hocam 4 fiziksel çekirdekli bir makinada olusturulan 4 kanal otomatik olarak jvm tarafından çekirdeklere dağıtılıyormu?

(23 Ara '12, 08:41) Sheriff Sheriff's gravatar image
3

Her thread cekirdek sayisi yeterli oldugu sürece bir cekirdek üzerinde kosturulur. JVM bunu otomatik olarak sagliyor.

(24 Ara '12, 01:05) özcanacar ♦♦ %C3%B6zcanacar's gravatar image
1

Affınıza sığınıyorum anlayamadığım bir nokta var. Mesela benim tek çekirdekli işlemcim var. Threadlere çalışıyorum, şimdi 2 döngü - 2 thread oluşturup eş zamanlı olayını gözlemleyemecek miyim?

(18 Şub '13, 11:34) igundu91 igundu91's gravatar image

Gözlemlersiniz, ama bu iki thread paralel kosmaz. JVM belli bir zaman dilimi icin ilk threadi, ondan sonra belli bir zaman dilimi icin ikinci threadi kosturacaktir. Bu durumda (yani yetersiz sayida cekirdek oldugundan) bahsettigim thread context switch olusacaktir ki bu da threadlerin bölünmesine sebep olacak ve gercek anlamda paralel bir sekilde kosmalarini engelleyecektir.

(19 Şub '13, 03:52) özcanacar ♦♦ %C3%B6zcanacar's gravatar image

Cevap verilmiş olarak işaretlenmiş ama ben de düşüncemi yazayım, bu işlem için birden çok thread açman bence doğru değil. Eğer yolladığın emaillerin anlık olarak gönderilmesi gerekmiyorsa, tek bir thread(kastettiğim main thread değil) üstünde bir sınıf aracılığıyla sıra oluşturup bu şekilde email gönderimini sağlayabilirsin. Gönderilecek emailleri sıraya eklersin, her saat başı sınıfa kontrol ettirerek sıraya eklenen emailleri gönderebilirsin. Bu bence daha sağlıklı bi yöntem olur. Bir de sınıf veya sınıflar aracılığıyla bu işlemi yaptıracağın için yönetilmesi ve devam ettirilmesi de kolay olur.

permanent link

cevaplandı: 19 Kas '15, 02:32

ArnesTwin's gravatar image

ArnesTwin
1.1k1511
cevap kabul oranı: 14%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×31

Soruldu: 27 Eyl '12, 07:38

Görüntüleme: 1,204 kez

Son güncelleme: 19 Kas '15, 02:32

powered by BitNami OSQA