thread nedir

Kodla Büyü

tati

Seçkin Üye
Seçkin Üye
Mesajlar
808
bir yükseklisans ödevidir. üniversite hayatım boyunca hiç böyle bir kavram görmedim. fikri olan paylaşırsa çok sevinirim
 
Threadler kullanarak delphi programı yapmış birisi olarak şöyle diyorum:

hangi thread'in önce çalışacağını kestiremezsin. Tamamen runtime esnasında dinamik olarak belli olur bu durum. Yok sen illede filanca thread önce başlasın diye yazarsan kodunu tabiki o başlar.
 
Threadlar paralel iş yapan işlemlerdir.
Thread kullanmazsak örneğin yoğun işlem yapan bir fonksiyon programımızı kilitleyecektir. Threadlar ile yapılan işlemlerin paralel çalışması sağlanabilir.
Örneğin bir yanda müzik çalarken bir yanda paintle çizim yapman gibi.
Bu soruda c'nin alacağı değerler hangi threadın önce biteceğine göre değişir.
Kod:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package javathread;
/**
 *
 * @author Arif CEYLAN
 */
public class JavaThread {
    private int a=4;
    private int b=0;
    private int c=0;
     public class thr1 extends Thread
    {
        public void run()
        {
            if(a<0)
            {
                c=b-a;
            }
            else
            {
               c=b+a;
            }
        }
    }
    
    public class thr2 extends Thread
    {
         public void run()
         {
             b=10;
             a=-3;
         }
    }
    /**
     * @param args the command line arguments
     */
     public static void main(String[] args) {
    JavaThread jt=new JavaThread();
    Thread tr1=jt.new thr1();
    Thread tr2=jt.new thr2();
     tr1.run();
    tr2.run();    
     System.out.println("a'nın değeri:"+jt.a+",bnin değeri:"+jt.b+",c'nin değeri:"+jt.c);
     }    
   }
Sizin örneğe göre yapılan yukarıdaki örnekte ilk 1. fonksiyonu run ettiriyoruz, sonra 2. Yapılan işleme göre 2. 1den önce de bitebilirdi ama şu durumda bitmiyor. Sonuç: a'nın değeri:-3,bnin değeri:10,c'nin değeri:4
Yani c=4.
Threadların sırasını değiştirdiğimizde, önce 2.yi başlattığımızda ise sonuç:
a'nın değeri:-3,bnin değeri:10,c'nin değeri:13
Yani c=13

iyi çalışmalar.
 
Multithreaded Programming

Theory and Practice
 

Ekli dosyalar

  • B4AFeZvIgAABsqn.jpg
    B4AFeZvIgAABsqn.jpg
    92.5 KB · Görüntüleme: 924
Geri
Üst