Tôi đang cố gắng viết một bài kiểm tra đơn vị yêu cầu các chuỗi mulitple. Tuy nhiên, có vẻ như các chủ đề chỉ dừng một phần thông qua thực hiện. Hãy xem xét mã sau:Chủ đề hoạt động lạ lùng trong JUnit
public class Test {
@org.junit.Test
public void TestThreads() {
new Thread(new Runnable() {
public void run() {
for (int i = 1; i < 1000; i++) System.out.println(i);
}
}).start();
}
}
Nếu tôi chạy thử nghiệm đơn vị này, nói chung sẽ dừng hiển thị đầu ra ở đâu đó giữa 140-180. Nếu tôi chuyển đổi mã này thành một lớp thông thường và chạy nó, nó hoạt động tốt. Có ai có bất kỳ ý tưởng những gì tôi đang thiếu ở đây?
Cảm ơn, - Andrew.
Để nói rằng các đối tượng xóa 'JUnit' có một chút gây hiểu lầm, vì trong Java, không có cách nào để xóa một đối tượng một cách rõ ràng. –
@Martin đúng. nhưng JVM có thể lấy lại (GC) khi đối tượng không cần nữa. Một khi các bài kiểm tra được thực hiện, JUnit giết Chủ đề và về cơ bản toàn bộ JVM. – goblinjuice
@goblinjuice không có nghĩa là JUnit giết chết một thể hiện đối tượng nào cả. Kể từ khi JVM thoát, mỗi bit bộ nhớ được sử dụng sẽ được giải phóng. –