Rumah > Java > javaTutorial > teks badan

Thread Concurrency Di Jawa

Linda Hamilton
Lepaskan: 2024-11-02 11:05:30
asal
850 orang telah melayarinya

Thread Concurrency In Java

Thread Concurrency atau Multithreading dalam Java lanjutan membolehkan berbilang thread dilaksanakan serentak, meningkatkan prestasi dan responsif dalam aplikasi yang kompleks. Berikut ialah pecahan ringkas konsep dan utiliti utamanya.

Ciri Utama Multithreading dalam Java:

  1. Mencipta Benang.
  2. Pengurusan Benang dengan Pelaksana
  3. Utiliti Concurrency
  4. Rangka Kerja Fork/Join
  5. Pengaturcaraan Asynchronous dengan Completable Future

1️⃣ Mencipta Benang.

  • Melanjutkan Benang: Buat urutan baharu dengan mengatasi kaedah run().

  • Melaksanakan Runnable: Hantar tika Runnable kepada objek Thread.

  • Melaksanakan Boleh Dipanggil: Tidak seperti Boleh Dipanggil, Boleh Dipanggil membenarkan urutan untuk mengembalikan hasil dan mengendalikan pengecualian yang diperiksa.

2️⃣ Pengurusan Benang dengan Pelaksana.

  • Rangka Kerja Pelaksana Java (java.util.concurrent.ExecutorService) mengurus kumpulan benang, membenarkan pengendalian tugas yang cekap.

  • Pelaksana seperti FixedThreadPool dan CachedThreadPool mencipta kumpulan benang boleh guna semula, mengurusnya dengan cekap untuk mengurangkan overhed mencipta benang baharu.

3️⃣ Utiliti Keselarasan

  • Kunci: Mekanisme penguncian lanjutan seperti ReentrantLock memberikan lebih fleksibiliti daripada kaedah yang disegerakkan, membenarkan kunci bermasa dan boleh terganggu.

  • Pembolehubah Atom: Pakej java.util.concurrent.atomic termasuk kelas atom (AtomicInteger, AtomicLong) yang menawarkan benang tanpa kunci-
    operasi selamat.

  • Penyegerak:termasuk utiliti seperti:
    CountDownLatch: Membenarkan urutan menunggu sehingga urutan lain selesai
    tugasan.
    CyclicBarrier: Menyegerakkan bilangan benang tetap pada
    biasa titik penghalang.
    Semaphore: Mengawal akses kepada sumber dengan membenarkan nombor tertentu
    daripada urutan serentak.

4️⃣ Rangka Kerja Fork/Join

  • 1. Untuk tugas bahagi dan takluk, ForkJoinPool membahagikan tugas kepada subtugas yang lebih kecil yang diproses secara selari, terutamanya berguna dalam algoritma rekursif.

5️⃣ Pengaturcaraan Asynchronous dengan Masa Depan Boleh Lengkap

  • CompletableFuture mendayakan pengaturcaraan tak segerak dan tidak menyekat, membenarkan rantaian dan penggabungan tugas untuk aliran kerja yang kompleks.

Menggunakan Contoh Benang

Panggilan kelas utama 2 urutan berbeza

public class ThreadConcurrence {
    public static void main(String[] args) {
        // There is 2 type you have to call thread method
                //1- Extend Thread class
                //1- Implements Runnable class
        // why Implement concept is introduce here
                // because in java multiple thread dose not support that's so why implement class will introduce
                // ex- when u extend (inherit) base call, then at that time this call can not extend another Thread class.
        int n = 10;
        for (int i = 0; i < n; i++) {

            // in case of extend(inherit) Thread class
            Thread1 t1 = new Thread1();
            t1.start();

            // in case of implement Runnable class
            Thread t2 =new Thread(new Thread2());
            t2.start();
        }
    }
}

Salin selepas log masuk

Thread1--(melanjutkan Thread)

public class Thread1 extends Thread{
    //If you are extend Thread class then you  most be used run()
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread1 is running now....");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Salin selepas log masuk

Thread2--(melaksanakan Runnable)

public class Thread2 implements Runnable {
    //IF you are implement thread Then run() will be executed.
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread2 is running.......");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Salin selepas log masuk

Kesimpulan :

Dengan memanfaatkan alatan dan rangka kerja ini, multithreading Java lanjutan membolehkan membina aplikasi berprestasi tinggi berskala yang boleh mengendalikan tugas serentak dengan lancar.

Untuk mendapatkan lebih banyak cerapan, sila sebut Linkedin dan GitHub anda untuk contoh dan sampel kod yang mendalam! Beritahu saya jika anda mahukan sebarang pelarasan khusus.

Linkedin : https://www.linkedin.com/in/pravanjan-17p/

GitHub : https://github.com/Prabhanjan-17p

Atas ialah kandungan terperinci Thread Concurrency Di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!