Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Java

Java’da Multithreading (Thread ve Runnable) – 1

Paylaş

Bu yazıda Java’da Multithreading işlemlere neden ihtiyaç duyarız ve nasıl kullanmalıyız bir seri halide açıklayacağım.

Java’da kodumuzun aynı anda birden fazla işlem yapmasını istediğimizde zaman Thread’leri kullanmamız gerekmektedir.

Thread’leri kullanmanın iki yolu bulunmaktadır.

  • Thread
  • Runnable

Thread yönteminde extend ederek, Runnable yönetimde ise implement edip run metodunu override ederek kullanabiliyoruz.

Örnek olarak;

public class Deneme extends Thread {
    @Override
    public void run() {
         
    }
}
public class Deneme implements Runnable {
    @Override
    public void run() {
           
    }
}Code language: PHP (php)

run metodu thread’in çalışacağı zaman kullanılan bir metotdur.

Thread sınıfını extend ederek kullanma yöntemi tercih edilen bir yöntem değildir. Çünkü yazılımızdaki iş akışı içerisinde sınıfımızın katılım gelişimini engellemiş oluyoruz. Bir sınıf birden fazla extend işlemi olamayağından kısıtlamış olmaktayız. O yüzden Runnable’ı implement ederek kullanmayı tercih etmemiz daha doğru olacaktır.

Runnable’ı kullanarak bir örnek yapalım.

public class Deneme implements Runnable{
    String name;

    public Deneme(String threadname)
    {
        name = threadname;
    }

    public void run()
    {
        try {
            for (int i = 5; i > 0; i--) {
                System.out.println(name + ": " + i);
                Thread.sleep(1000);
            }
        } catch (InterruptedException e) {
            System.out.println(name + "Hata");
        }
        System.out.println(name + " cikiliyor.");
    }
}
Code language: PHP (php)

Main sınıfımızı yazalım.

public class Main {
    public static void main(String[] args) {
      
        Deneme deneme = new Deneme("1. thread =>  ");
        Deneme deneme1 = new Deneme("2. thread => ");
        Deneme deneme2 = new Deneme("3. thread => ");

        Thread thread=new Thread(deneme);
        Thread thread1=new Thread(deneme1);
        Thread thread2=new Thread(deneme2);

        thread.start();
        thread1.start();
        thread2.start();

        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            System.out.println("Hata");
        }
        System.out.println("Thread bitti.");Code language: JavaScript (javascript)

Çıktıya bakalım ve sonrasında ne yaptığımıza bir bakalım.

2. thread => : 5
1. thread =>  : 5
3. thread => : 5
1. thread =>  : 4
2. thread => : 4
3. thread => : 4
2. thread => : 3
1. thread =>  : 3
3. thread => : 3
2. thread => : 2
1. thread =>  : 2
3. thread => : 2
1. thread =>  : 1
2. thread => : 1
3. thread => : 1
2. thread =>  cikiliyor.
3. thread =>  cikiliyor.
1. thread =>   cikiliyor.Code language: PHP (php)

Yukarıdaki örnekte 3 adet thread oluşturduk ve start diyerek başlattık. Çıktıya bakacak olursanız belirsiz bir sıra içerisinde çalışıyor ve bu sıra her çalışma zamanında her zaman değişmesi anlamına gelmektedir.

Thread’lerin çalışma planını JVM belirlemekte. CPU’nun durumuna göre farklı çıktılar oluşur.

Tags:

Java Multithreadingjava runnablethread java

Paylaş

Diğer Yazılar

RabbitMQ Dersleri
Previous

RabbitMQ Exchange Çeşitleri Nelerdir?

Java Multithreading Nedir
Next

Java’da Multithreading ( Yaşam Döngüsü ve States ) – 2

Next
Java Multithreading Nedir
28 Aralık 2021

Java’da Multithreading ( Yaşam Döngüsü ve States ) – 2

Previews
15 Aralık 2021

RabbitMQ Exchange Çeşitleri Nelerdir?

RabbitMQ Dersleri

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

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

İlgini Çekebilir

Java Multithreading Nedir

Java’da Multithreading Dersleri

Java Multithreading Nedir

Java’da Multithreading ( Thread Safety synchronized intrinsic lock ) – 3

Java Multithreading Nedir

Java’da Multithreading ( Yaşam Döngüsü ve States ) – 2

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Redis
Röportaj
Spring Data
Spring Cloud Stream
XCode
Debezium
Mikroservis Mimarisi
Video
Spring Native
iPhone Uygulama Geliştirme
Objective C
JPA
Spring Security
PostgreSQL
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
RabbitMQ
PrimeFaces
JDBC
Spring Jdbc Template
Spring
Spring MVC
Manset
Google
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Tanıyalım
Veritabanı
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale