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

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / 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 yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Java Multithreading Nedir

Java CountDownLatch Nedir?

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
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
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
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale