Tôi đang cố gắng tạo nhiều luồng bằng cách sử dụng vòng lặp for trong java để chúng chia sẻ cùng một bộ đếm biến. Tôi đang làm một cái gì đó sai vì tôi muốn truy cập để tăng cho mỗi chủ đề.Cách tạo nhiều luồng bằng cách sử dụng vòng lặp trong java
Đây là đầu ra cho đoạn mã sau:
Counter: 1
Counter: 1
Counter: 1
public static void main(String[] args) {
int numThreads = 3;
for (int i = 0; i < numThreads; i++) {
Create c = new Create();
Thread thread = new Thread(c);
thread.start();
}
}
public class Create implements Runnable {
int counter = 0;
public void run() {
counter++;
System.out.println("Counter: " + counter);
}
}
Và này 'counter' sẽ đếm mỗi chủ đề duy nhất mà lớp phương thức '#run()'? – Tom
Không, hiện tại nó tính phương thức chạy (thực thi) s của một đối tượng 'Create', để đạt được điều này ở cấp độ lớp, bạn cần làm cho' counter' tĩnh. (hoặc trong phương pháp chính của bạn: chỉ cần tạo một 'Tạo' cho tất cả các chủ đề.) – xerx593
Bạn biết điều đó, vậy làm cách nào để chỉnh sửa mã của bạn để phù hợp với các yêu cầu của OP? – Tom