色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 多線程和鎖

錢諍諍2年前8瀏覽0評論

Java是一種常用的編程語言,支持多線程操作。多線程是指在程序中同時運行多個線程以實現并發執行的機制,從而提高程序運行效率。

多線程的運行需要保證線程間的安全性,因為同時運行多個線程,可能會產生競爭條件。為了解決這個問題,Java提供了鎖機制,用于控制多個線程對共享資源的訪問。

Java中的鎖分為兩種,分別為Synchronized關鍵字鎖和ReentrantLock類鎖。 Synchronized是Java提供的一種內置鎖,是一種輕量級鎖,用于實現互斥同步。ReentrantLock是一種重量級鎖,可以靈活地控制鎖的獲取和釋放,還支持公平性和可重入性,是Synchronized的替代品。

public class MyThread implements Runnable {
private static int num = 0;
private static ReentrantLock lock = new ReentrantLock();
public void run() {
lock.lock();
try {
System.out.println(++num);
} finally {
lock.unlock();
}
}
}
public class Test {
public static void main(String[] args) {
MyThread myThread = new MyThread();
for (int i = 0; i< 10; i++) {
new Thread(myThread).start();
}
}
}

上述代碼中,使用ReentrantLock類鎖來保證對共享資源num的操作是互斥的。在run方法中,首先調用lock方法獲取鎖,然后對num進行加操作,最后調用unlock方法釋放鎖。多個線程之間的加操作是互斥的,保證了程序的正確性。