1
Penyegerakan benang Java dan pengecualian bersama adalah kemahiran yang amat diperlukan dalam pengaturcaraan berbilang benang. Editor PHP Banana menegaskan bahawa menguasai kemahiran ini boleh menjadikan program anda berjalan dengan lancar. Dengan menguruskan operasi akses dan penyegerakan yang saling eksklusif dengan betul antara rangkaian, kekacauan data dan keadaan perlumbaan boleh dielakkan dan kestabilan dan kebolehpercayaan program dapat dipastikan. Pemahaman yang mendalam tentang prinsip dan aplikasi penyegerakan benang Java dan pengecualian bersama adalah sangat penting untuk meningkatkan prestasi dan kecekapan program.
2. Penyegerakan benang
Penyegerakan benang bermakna apabila berbilang rangkaian mengakses sumber yang dikongsi pada masa yang sama, aksesnya diselaraskan melalui beberapa mekanisme untuk memastikan integriti dan konsistensi data. Java menyediakan pelbagai mekanisme penyegerakan benang, termasuk
kunci, semaphore, halangan dan pembolehubah keadaan, dsb.
3. Saling eksklusif
Pengecualian bersama ialah kes khas penyegerakan rangkaian, yang memerlukan hanya satu rangkaian berbilang rangkaian boleh mengakses sumber dikongsi pada masa yang sama. Kunci boleh digunakan untuk melaksanakan pengecualian bersama di Jawa. Kunci ialah objek yang menyediakan akses eksklusif kepada sumber yang dikongsi. Apabila utas memperoleh kunci, utas lain tidak boleh mengakses sumber kongsi sehingga utas melepaskan kunci.
4. Kod demo
Berikut ialah contoh yang menunjukkan penyegerakan benang dan pengecualian bersama dalam Java:
public class ThreadSyncDemo {
private static int count = 0;
public static void main(String[] args) {
// 创建两个线程
Thread thread1 = new Thread(() -> {
// 获得锁
synchronized (ThreadSyncDemo.class) {
for (int i = 0; i < 10000; i++) {
count++;
}
}
});
Thread thread2 = new Thread(() -> {
// 获得锁
synchronized (ThreadSyncDemo.class) {
for (int i = 0; i < 10000; i++) {
count++;
}
}
});
// 启动两个线程
thread1.start();
thread2.start();
// 等待两个线程结束
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 打印count的值
System.out.println("Count: " + count);
}
}
Salin selepas log masuk
Dalam contoh di atas,
akses saling eksklusif kepada pembolehubah. count
变量是一个共享资源,两个线程同时访问它。为了确保两个线程不会同时修改count
变量,我们在count
变量上使用了synchronized
关键字,这样就实现了对count
5.
Ringkasan
Penyegerakan benang dan pengecualian bersama adalah konsep yang sangat penting dalam pengaturcaraan berbilang benang. Dengan menggunakan penyegerakan benang dan pengecualian bersama, anda boleh memastikan bahawa tidak akan berlaku konflik apabila berbilang benang mengakses sumber kongsi pada masa yang sama, dengan itu memastikan ketepatan dan kebolehpercayaan program.
Atas ialah kandungan terperinci Penyegerakan benang Java dan pengecualian bersama: kemahiran penting untuk pengaturcaraan berbilang benang, kuasainya untuk menjadikan program anda sehalus sutera. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!