Developersland

Teknoloji ve Yazılım Blogu

  • Yazıtipi boyutunu arttır
  • Varsayılan yazıtipi boyutu
  • Yazıtipi boyutunu azaltır

Java Threads Kullannımına Örnek

Java Threads kullanımına örnek vermek amacıyla yaptığım küçük bir projeyi anlatacağım bu yazımda. Kodda üç adet thread bulunmaktadır bunlar;

MainThreads  kullanıcıdan bir string alır ve bu stringi FirstThreads'e yollar. String'i aktarırken call by reference özelliğini sağlamak amacıyla bu aktarım Mesaj sınıfı yardımıyla yapılır.

Firsthreads aldığı ise bu stringdeki büyük harfleri küçük harflere , küçük harfleri ise büyük harflere çevirir ve oluşan stringi SecondThreads'a yollar

SecondThreads ise stringi tersine çevirir ve sonuç olarak eğer girdimiz "Hello World" ise çıktımızın "DLROw OLLEh" olması gerekir.

Kullandığım sınıflar aşağıdaki gibidir.



package paket;

 

public class Main {

 

      /**

       * @param args

       */

      public static void main(String[] args) {

           

           

            Thread mainThread=new Thread(new MainThread());

            mainThread.start();

           

            try {

                  mainThread.join();

            } catch (InterruptedException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

            }

      }

 

}

package paket;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

 

public class MainThread implements Runnable{

     

      @Override

      public void run() {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str = null;

            try {

                  str = br.readLine();

            } catch (IOException e) {

                  System.out.println("Error!");

                  System.exit(1);

            }

            System.out.println("Your input is " + str);

           

            Mesaj mesaj=new Mesaj(str);

           

            Thread firstThread=new Thread(new FirstThread(mesaj));

           

            firstThread.start();

           

            try {

                  firstThread.join();

            } catch (InterruptedException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

            }

           

            System.out.println("Esas sonuc="+mesaj.getMesaj());

      }

 

}

package paket;

 

public class FirstThread implements Runnable{

      Mesaj mesaj;

     

      public FirstThread(Mesaj m) {

            this.mesaj=m;

      }

      @Override

      public void run() {

            char [] array=mesaj.getMesaj().toCharArray();

            String sonuc="";

            for(int i=0; i<=mesaj.getMesaj().length()-1; i++)

            {

                  if(Character.isLowerCase(array[i]))

                  {

                        sonuc+=Character.toUpperCase(array[i]);

                  }

                  else

                  {

                        sonuc+=Character.toLowerCase(array[i]);

                  }

            }

            mesaj.setMesaj(sonuc);

           

           

            Thread secondThread=new Thread(new SecondThread(mesaj));

           

            secondThread.start();

           

            try {

                  secondThread.join();

            } catch (InterruptedException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

            }

           

      }

 

}

package paket;

 

public class SecondThread implements Runnable{

     

      Mesaj mesaj;

     

      public SecondThread(Mesaj m) {

            this.mesaj=m;

      }

 

      @Override

      public void run() {

            char [] array=mesaj.getMesaj().toCharArray();

            String sonuc="";

           

            for(int i=mesaj.getMesaj().length()-1;i>=0;i--)

            {

                  sonuc +=array[i];

            }

                       

            mesaj.setMesaj(sonuc);

           

      }

 

}

package paket;

 

public class Mesaj {

      String mesaj;

     

      public Mesaj(String mesaj) {

            this.mesaj = mesaj;

      }

 

      public String getMesaj() {

            return mesaj;

      }

 

      public void setMesaj(String mesaj) {

            this.mesaj = mesaj;

      }

     

}


 

Yorum ekle


Güvenlik kodu
Yenile