Java'da Konu Nasıl Oluşturulur? | Java'da çoklu kullanım

Yayınlanan: 2020-12-29

Bu makalede, Java'da iş parçacığı oluşturmaya bir göz atacağız ve iş parçacığı oluşturmayı mümkün kılan mekanizmaları keşfedeceğiz.

İçindekiler

Java'da Diş Açma

Java'daki iş parçacığı özelliği, hafif bir alt işlemdir. En küçük işleme birimi olarak kabul edilir. Bir programda çoklu görev gerçekleştirmenin bir yoludur. Oyunlar, animasyonlar vb. söz konusu olduğunda kullanışlı bir özelliktir.

Java, iş parçacığı ve çoklu iş parçacığı oluşturmak için yerleşik desteğe sahiptir. Bu, CPU alanının optimum kullanımıyla verimsizlikleri ve çekmeyi en aza indirmeye yönelik akıllı bir yaklaşımdır. Java'da bu iki şekilde yapılabilir:

  1. Konu Sınıfını Genişletin veya
  2. Çalıştırılabilir Arabirimi Uygulayın

Aynı anda birden fazla iş parçacığı yürütüldüğünde, buna çoklu iş parçacığı denir. Bu, esasen, bir programın birden fazla bölümünün aynı anda çalışmasına izin verir, bir iş parçacığının her bir parçası ve her iş parçacığı, yürütme için farklı bir yol izler.

İş parçacıkları paylaşılan bellek alanını kullanır; her parçaya bellek ayrılmaz, bu da maksimum CPU kullanımına neden olur. Ayrıca, bağlamları değiştirmek fazla zaman almaz. Bununla birlikte, çok fazla iş parçacığı, CPU'nuzu bağlam değiştirmeye dahil edebilir ve yürütmeniz gecikebilir.

Bir İplik Aşağıdaki Altı Durumdan Birinde Bulunabilir

  1. YENİ – bir iş parçacığı oluşturulur oluşturulmaz yeni durumda bulunur. Esasen, iş parçacığının henüz yürütmeye başlamadığı anlamına gelir.
  2. ÇALIŞIYOR – bir iş parçacığı yürütülürken veya yürütülecek sıradaysa, çalışır durumda.
  3. BEKLEME – çalışan bir iş parçacığı bazen başka bir faaliyetin gerçekleşmesine izin vermek için durdurulur veya askıya alınır. wait() veya join()'in zaman aşımı olmayan bir sürümü, bir iş parçacığının yürütülmesini askıya alabilir. Eylem gerçekleştiğinde, askıya alınmış bir iş parçacığı devam ettirilir.
  4. ZAMANLI BEKLEME – çalışan bir iplik bazen geçici olarak durdurulur veya belirli bir süre için askıya alınır. Örneğin, uyku() işlevi çağrıldığında.
  5. ENGELLENDİ – askıya alınmış bir Java iş parçacığı belirli bir kaynağı alamadığında, engellenir ve engellenmiş durumda bulunur.
  6. SONLANDIRILDI - bir iş parçacığı yürütmesini tamamladığında, sonlandırılmış durumda bulunur. Ancak, istediğiniz zaman bir diziyi sonlandırabilirsiniz.

Java mimarisi ve bileşenleri hakkında daha fazla bilgi edinin.

Java'da bir iş parçacığı oluşturmanın faydaları

İplik oluşturmanın birkaç avantajı vardır. Bunlardan bazıları

  1. İş parçacıkları bağımsız olduğundan, paylaşılan bellek alanında çalışsalar bile bir yürütme diğerini etkilemez. Bu aynı zamanda birden fazla işlemi aynı anda gerçekleştirebileceğiniz anlamına gelir.
  2. İş parçacığı oluşturma, çoklu görev biçimidir ve zamandan tasarruf sağlar.
  3. Bir iş parçacığındaki bir hata diğerini etkilemez.

Java'da bir iş parçacığı nasıl oluşturulur?

Yukarıda tartışıldığı gibi, bunu yapmanın iki yolu vardır: İş Parçacığı Sınıfını Genişletin veya Çalıştırılabilir Arabirimi Uygulayın

Konu Sınıfı

Thread sınıfında, işlemleri gerçekleştirmenize, threadleri yönetmenize ve takip etmenize izin veren yapıcılar ve yöntemler vardır. Daha sonra eşlik eden Runnable arabirimini uygulayan Object sınıfını genişletir. İş parçacığı sınıfında bulunan yapıcılar şunlardır: Thread(), Thread(String name), Thread(Runnable r) ve Thread(Runnable r, String name).

Yöntemler ve açıklamaları aşağıdadır

Yöntem Ne için kullanılır?
Başlat() Yürütmeyi başlatır
koşmak() Bir iş parçacığı için bir eylem çalıştırmak için
uyumak() Belirli bir süre boyunca uykuya bir iş parçacığı koyar
katılmak() Başka bir iş parçacığı sonlandırılana kadar bekleyin
getPriority() Belirli bir iş parçacığının önceliğini belirtmek için
setÖncelik() Belirli bir iş parçacığının önceliğini değiştirmek için
getName() Belirli bir iş parçacığının adını döndürmek için
setAd() Belirtilen iş parçacığının adını değiştirmek için
getId() Belirli bir iş parçacığının kimliğini döndürmek için
yaşıyor() Bir iş parçacığının hala herhangi birinde mevcut olup olmadığını test etmek için
teslim olmak() Başka bir iş parçacığının/iş parçacıklarının çalışmasına izin vermek için bir iş parçacığı nesnesinin yürütülmesini duraklatır
askıya almak() Belirli bir iş parçacığını askıya almak için
öz geçmiş() Bir iş parçacığını askıya alınmış durumdan sürdürmek için
Dur() Belirli bir iş parçacığını durdurmak için
tahrip etmek() İplik grubunu ve alt grupları yok etmek için
kesmek() İş parçacığı yürütmesinde kesintiye neden olmak için
kesintiye uğradı() Belirli bir iş parçacığı yürütmesinin kesintiye uğrayıp uğramadığını test etmek için
kesintiye uğradı() Geçerli iş parçacığı yürütmesinin kesintiye uğrayıp uğramadığını test etmek için
aktifSayı() Bir iş parçacığı grubundaki etkin iş parçacıklarının sayısını döndürmek için
bekletKilit() Yalnızca ve yalnızca geçerli iş parçacığı belirtilen nesnede monitör kilidini tutuyorsa true değerini döndürür.
getState() Belirli bir iş parçacığının durumunu belirlemek için
setContextClassLoader() ClassLoader bağlamını ayarlamak için
getContextClassLoader() ClassLoader bağlamını döndürmek için

Thread sınıfını genişleterek bir thread oluşturabilmek için öncelikle java.lang.Thread sınıfını genişleten bir sınıf oluşturulmalıdır. Bu sınıf, run() yöntemini geçersiz kılmak için tanımlanmıştır. Ardından, iş parçacığı yürütmesini başlatmak için start() yöntemi çağrılarak takip eden yeni sınıfta bir nesne oluşturulur.

Okumanız Gerekenler: Java'daki Model Programlarını Kontrol Etmeniz Gerekir

Çalıştırılabilir Arayüz

Bu, bir iş parçacığı oluşturmanın en kolay yoludur. Çalıştırılabilir Arabirimi uygulamak için yalnızca bir yöntem gereklidir: run()

Bunu beyan etmek için yazıyoruz

genel geçersiz çalıştırma()

run() içinde, yeni bir iş parçacığı oluşturmak için kodu yazmaya devam ediyoruz.

Dünyanın En İyi Üniversitelerinden Yazılım Mühendisliği Kurslarına Kaydolun . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

İş parçacığı Sınıfı ve Çalıştırılabilir Arayüz

Thread sınıfı, başka bir sınıfı genişletmenizi engeller. Bunun nedeni, Java'da çoklu kalıtımın mümkün olmamasıdır. Ancak, diğer sınıfları genişletmeye devam ettiğiniz Runnable arabirimini uyguladığımızda durum böyle değil.

Thread sınıfını genişletmek, bir iş parçacığının işlevselliğini artıran birkaç önemli yöntemi sizin için erişilebilir kılar. Örneğin, verim(), stop(), isalive(), interrupt(). Runnable arabirimi, yalnızca oldukça sınırlayıcı olan bir yönteme sahiptir.

toparlamak

Java, tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ projeler ve ödevler, IIIT-B Mezunları statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Hayalinizdeki İşe Yer Açın

Yazılım Mühendisliği Yüksek Lisans Programına Hemen Başvur