[]
Java multi threading
sevgili dostlar sorunum şu;
elimde bir database var bu databasede bir haber sitesinin linkleri var. buraya kadar her şey güzel. bu linkleri tek tek ziyaret ederek siteden haber metinlerini çekiyorum. ancak olay multi thread olarak yapmaya gelince tıkanıp kaldım.
amacım iki tane thread oluşturup bu threadlere iki ayrı haber linkini yollayıp çekmeyi planlıyorum.
işlemin daha hızlı olması için. fikri olan yardımcı olabilecek birisi?
elimde bir database var bu databasede bir haber sitesinin linkleri var. buraya kadar her şey güzel. bu linkleri tek tek ziyaret ederek siteden haber metinlerini çekiyorum. ancak olay multi thread olarak yapmaya gelince tıkanıp kaldım.
amacım iki tane thread oluşturup bu threadlere iki ayrı haber linkini yollayıp çekmeyi planlıyorum.
işlemin daha hızlı olması için. fikri olan yardımcı olabilecek birisi?
javada multithreading'in en pratik yolu, işi yapan sınıfı Runnable interface'ini implement eder hale getirmek bence. bu durumda sınıfın bir Run() methodu oluyor, işi orada yaptırıyorsunuz. daha sonra işi dağıtırken new Thread(new SinifIsmi(veri)).Start(); derseniz yeni bir thread içinde o sınıf işini yapar.
- talemon (14.01.11 14:45:01)
java.concurrent altındaydı sanırım bir takım kütüphaneler var daha da high level. Özellikle Executor denen sınıf iyidir. Bununla thread pool oluşturup patır patır threadleri çalıştırabilirsiniz.
talemon'un dediği gibi haber metinini çeken sınıfını alın ve implement Runnable yapın. Çekme işlemini run() a koyun. Sonra executor'a yollayın oluşturduğunuz metin çeken objeleri. Örnek kod:
Executor executor = Executors.newCachedThreadPool();
MetinCeker cek = new MetinCeker(link, nebilimbenparametresi);
executor.execute(registerer);
talemon'un dediği gibi haber metinini çeken sınıfını alın ve implement Runnable yapın. Çekme işlemini run() a koyun. Sonra executor'a yollayın oluşturduğunuz metin çeken objeleri. Örnek kod:
Executor executor = Executors.newCachedThreadPool();
MetinCeker cek = new MetinCeker(link, nebilimbenparametresi);
executor.execute(registerer);
- natnan (14.01.11 16:31:07 ~ 16:31:27)
1