İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Thread'ler

Bazı Thread Kavramları

Sonsu Döngü : while (true)

Programcının yarattığı Thread'ler ana thread'e paralel çalıştığı için run method'larında sonsuz döngü kurmak, yani

	while (true){
		// Any Piece Of Code
	}

yapmak programı kitlemeyebilir. Run methodu içerisinde yazılan kodlardan herhangi biri beklemeya yol açarsa program sorunsuz çalışır.

Thread'i 'Uyutmak' : Thread.sleep

Thread çalışırken herhangi bir şekilde beklemesi daha teknik terimler 'uyuması' sağlanabilir. Şu anda geçerli Thread'i uyutmak için Thread.sleep() method'u kullanılır. Parametre olarak kaç milisaniye uyunacağı verilir :

	Thread.sleep(1000);

Bir thread uyurken diğerleri çalışacağından, programda herhangi durgunluk meydana gelmez.

Basit Bir Thread Örneği

Aşağıdaki programa basit bir Thread örneği olarak faydalı olabilir.

ThreadTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster
  1 package com.godoro.samples.lang;
  2 import java.util.*;
  3 public class ThreadTest 
  4    implements Runnable
  5 {
  6   public void run(){
  7     while(true){
  8       try{
  9   Thread.sleep(1000);                
 10         System.out.println("Other thread time : "+new Date());
 11       }catch(Exception e){
 12   e.printStackTrace();
 13       }
 14     } 
 15   }
 16   public static void main(String[] args){
 17     ThreadTest test=new ThreadTest();
 18     Thread thread=new Thread(test);
 19     thread.start();      
 20     System.out.println("Main thread"); 
 21   }
 22    
 23 }

Aynı örneği, bir class yapmadan, inner class kullanarak gerçekleştirmek de mümkündür.

InnerThreadTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster
  1 package com.godoro.samples.lang;
  2 import java.util.*;
  3 public class InnerThreadTest {
  4   
  5   public static void main(String[] args){
  6     Runnable test=new Runnable(){
  7       public void run(){
  8   while(true){
  9     try{
 10       Thread.sleep(1000);                
 11             System.out.println("Other thread time : "+new Date());
 12           }catch(Exception e){
 13       e.printStackTrace();
 14     }
 15         }     
 16       }
 17     };
 18     Thread thread=new Thread(test);
 19     thread.start();      
 20     System.out.println("Main thread");      
 21   }
 22 }

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır