Rumah > Java > javaTutorial > Apakah situasi yang menyebabkan kebuntuan di Jawa?

Apakah situasi yang menyebabkan kebuntuan di Jawa?

WBOY
Lepaskan: 2023-05-19 12:46:06
ke hadapan
1200 orang telah melayarinya

Empat situasi

1 Kunci silang menyebabkan kebuntuan program: Contohnya, utas A memegang kunci R1 dan menunggu kunci R2, dan utas B memegang kunci R1. R2 dan menunggu kunci R1

2. Memori tidak mencukupi: Contohnya, dua utas T1 dan T2, T1 telah memperoleh 10MB memori, T2 telah memperoleh 15MB memori, kedua-dua T1 dan T2 perlu memperoleh 30MB memori untuk berfungsi, tetapi baki memori yang tersedia ialah 10MB , supaya kedua-dua utas menunggu antara satu sama lain untuk melepaskan sumber memori

3. Pertukaran data soal jawab: Pelayan membuka port tertentu dan menunggu klien untuk mengaksesnya Selepas pelanggan menghantar permintaan, pelayan gagal kerana beberapa Sebabnya adalah permintaan pelanggan terlepas, menyebabkan pelanggan menunggu pelayan untuk bertindak balas, sementara pelayan menunggu untuk pelanggan untuk menghantar permintaan

4. Kebuntuan disebabkan oleh gelung tak terhingga: Anda tidak boleh melihat kebuntuan menggunakan alatan seperti jstack, tetapi Program ini tidak berfungsi dan penggunaan CPU adalah tinggi jenis kebuntuan juga dipanggil animasi sistem yang digantung, yang sukar untuk menyelesaikan masalah dan menghasilkan semula

Instance

public class Main {
    private final Object MUTEX_READ = new Object();
    private final Object MUTEX_WRITE = new Object();
 
    public void read(){
        synchronized (MUTEX_READ){
            synchronized (MUTEX_WRITE){
            }
        }
    }
 
    public void write(){
        synchronized (MUTEX_WRITE){
            synchronized (MUTEX_READ){
            }
        }
    }
 
    public static void main(String[] args) throws InterruptedException {
        Main m = new Main();
        new Thread(()->{
            while (true){
                m.read();
            }
        }).start();
        new Thread(()->{
            while (true){
                m.write();
            }
        }).start();
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah situasi yang menyebabkan kebuntuan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan