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

java 多線程和并發

老白2年前8瀏覽0評論

Java多線程和并發是Java語言開發中非常重要的一個部分。Java中的多線程使得程序可以同時執行多個任務,從而提高了程序的性能和效率。

Java的多線程基于線程對象的概念,每個線程對象都有一個獨立的執行路徑。Java中的線程對象可以通過繼承Thread類或實現Runnable接口來創建。一般來說,實現Runnable接口是更好的方法,因為Java不支持多繼承,使用Runnable接口可以避免這個問題。

public class MyThread implements Runnable {
private String name;
public MyThread(String name) {
this.name = name;
}
@Override
public void run() {
for(int i=0; i<10; i++) {
System.out.println(name + " : " + i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Main {
public static void main(String[] args) {
Thread t1 = new Thread(new MyThread("Thread 1"));
Thread t2 = new Thread(new MyThread("Thread 2"));
t1.start();
t2.start();
}
}

上述代碼是一個使用Runnable接口創建的多線程示例,其中MyThread類是Runnable接口的實現,用于定義線程要執行的代碼。在Main類中,我們創建了兩個MyThread對象,并將它們分別作為參數傳遞給Thread類的構造方法中,然后調用start()方法來啟動線程執行。

Java中的并發主要是通過同步和鎖機制來實現的。在多線程環境下,如果多個線程同時操作同一個共享變量或資源,就會出現競爭條件。為了避免這種情況,Java提供了synchronized關鍵字和Lock機制來實現線程的同步。

public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) {
Counter counter = new Counter();
Thread t1 = new Thread(() ->{
for(int i=0; i<1000; i++) {
counter.increment();
}
});
Thread t2 = new Thread(() ->{
for(int i=0; i<1000; i++) {
counter.increment();
}
});
t1.start();
t2.start();
try {
t1.join();
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Count : " + counter.getCount());
}
}

上述代碼是一個使用synchronized關鍵字實現的線程同步示例。其中Counter類表示一個計數器對象,increment()方法是計數器加1的方法,在方法上加上synchronized關鍵字可以保證同一時間只有一個線程在執行該方法。Main類中創建了兩個線程分別執行increment()方法,最終輸出計數器的值。

Java多線程和并發是Java開發中非常重要的概念,需要理解和掌握。