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

Type and hit Enter to search

  • Quarkus Dersleri
  • Spring Dersleri
    • Spring Cloud
    • Spring Boot
    • Spring Uygulama Örnekleri
    • Spring Core
    • Spring JDBC Template
    • Spring MVC
  • İleri Java Dersleri
    • Java Server Faces
    • Java Server Pages
    • PrimeFaces
    • Servlet
    • JDBC
    • JSTL
    • Java 8
  • Hibernate Dersleri
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
  • Hakkımda
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

Struts
Röportaj
Android
Vue.js
Node.js
Redis
Spring Cloud Stream
Spring Data
Debezium
Mikroservis Mimarisi
XCode
Spring Native
Video
PostgreSQL
Spring Security
JPA
iPhone Uygulama Geliştirme
Objective C
Design Patterns
DevOps
Git
Apache Kafka
Maven
Yaptığım Projeler
Servlet
Spring Cloud
Linux
Spring
PrimeFaces
Spring Jdbc Template
JDBC
RabbitMQ
Manset
Google
Spring MVC
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Tanıyalım
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