Tôi cần xác định biến được chia sẻ trong phương thức main() của lớp Chính của tôi. Tôi cần hai luồng để có thể truy cập vào biến chia sẻ đó. Im tạo các luồng bằng cách thực hiện giao diện Runnable và triển khai phương thức abstract run() trừu tượng của giao diện. Làm thế nào để tôi tham khảo biến chia sẻ được định nghĩa trong phương thức main() của lớp Main từ bên trong phương thức run() được định nghĩa trong lớp của tôi, thực hiện giao diện Runnable? Rõ ràng chỉ cần gọi chúng bằng tên là không hoạt động - khi chúng xuất hiện trong phạm vi của lớp Runnable của tôi.truy cập biến được chia sẻ từ bên trong lớp Runnable
EDIT - xin lỗi, đây là một ví dụ đơn giản
public Class DoThread implements Runnable {
public void run(){
sharedVar += 1
}
}
và trong một file .class riêng biệt:
public Class Main {
public static void main(String[] args) {
int sharedVar = 0;
Thread t1 = new Thread(new DoThread());
Thread t2 = new Thread(new DoThread());
t1.start();
t2.start();
t1.join();
t2.join();
}
}
vì vậy tôi cần phải tạo ra một đối tượng để lưu trữ các var chia sẻ trong và sau đó truyền đối tượng đó cho cả các nhà xây dựng DoThread() khi tạo các luồng? Tôi bị nhầm lẫn đôi khi giữa khi java đi bởi ref hoặc đi qua var, vì vậy nếu tôi làm theo cách này, sẽ thay đổi để chia sẻ var bởi t1 được nhìn thấy bởi t2?
Bạn có thể đăng mã của mình không? – SJuan76
Luôn cố gắng đăng một [SSCCE] (http://sscce.org/). –