[JAVA] Thread Sınıfı Kullanımı ve Örnekleri

Basit olarak Thread bir programda paralel olarak çalışan ve birbirine bağımlı ya da bağımsız işlemler yapan iş yükü parçalarına denir.

Thread sınıfı , Thread  üzerinde işlemler oluşturmak ve gerçekleştirmek için yapıcılar ve yöntemler sağlar.

Thread Sınıfı

Thread()
Thread(String name)
Thread(Runnable r)
Thread(Runnable r,String name)

Thread Metotları

public void run(): thread içindeki çalışacak method
public void start(): thread başlangıç method
public void sleep(long miliseconds): thread uyutmak method
public void join(): diğer threadlerin bitmesini bekler
public int getPriority(): threadlere öncelik
public int setPriority(int priority):  threadlere öncelik
public String getName(): thread ismini döner
public int getId(): thread  id döner
public boolean isAlive():  alive test etmek için
public void yield():  diğer threadler için duraklamasına neden olur
public void stop(): thread durdurmak.

Örnek #1

Java üzerinde Monte Carlo Algoritması ile pi sayısını Thread kullanarak bulma

package yigit;

import jdk.swing.interop.SwingInterOpUtils;

import java.util.Random;

public class yigit {

    public static void main(String[] args) throws InterruptedException {

        Data d = new Data();
        d.total = 10_000_000;

        Thread f = new First(d);
        Thread s = new Second(d);
        Thread sn = new Sonuc(d);
        f.setPriority(1);
        s.setPriority(2);
        sn.setPriority(3);
f.start();
s.start();
       sn.start();



    }

}

class Sonuc extends Thread{

    Data d;

    public Sonuc(Data d){
        this.d = d;


    }
    public void run(){

        System.out.println("SONUC CALISTI");
        System.out.println("d.inner1 " +d.inner1);
        System.out.println("d.inner2 " + d.inner2);


              double PI = 4 * ((float)(d.inner1+d.inner2) / d.total);
            System.out.println("Pı yaklaşık: " + PI);
  }
}

class First extends Thread{
    Data d;
    public First(Data d){
        this.d = d;
    }

    public Data getird(){
        return this.d;
          }

    public void run(){

        System.out.println("First çalıştı");
        Random rand = new Random();
        int r = 1;
        for(int i = 0; i < d.total/2; i++){
            double x = rand.nextDouble();
            double y = rand.nextDouble();

            if(x*x + y*y <= r*r){
                d.inner1++;
            }
        }

        System.out.println("d.inner1 ## first " +d.inner1);
        System.out.println("d.inner 2 ## firs" + d.inner2);

    }
}

class Second extends Thread{
    Data d;
    public Second(Data d){
        this.d = d;
    }

    public void run(){

        System.out.println("SEcond calıstı");
        System.out.println("d.inner1 ## sec " +d.inner1);
        System.out.println("d.inner 2 ## sec " + d.inner2);


        Random rand = new Random();
        int r = 1;
        for(int i = 0; i < d.total/2; i++){
            double x = rand.nextDouble();
            double y = rand.nextDouble();

            if(x*x + y*y <= r*r){
                d.inner2++;
            }
        }


    }
}
class Data{
    int total;
    int inner1 = 0;
    int inner2 = 0;
}

Thread Sınıfı Kullanımı ve Örnekleri

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir