Tôi mới sử dụng Java và sử dụng mã do ai đó cung cấp. Ở đó, ở cuối mã, chúng sẽ làm gián đoạn một luồng nếu nó chưa hoàn thành. Tôi đang đo thời gian của mã.java: đang ngắt chuỗi hoàn toàn cần thiết
Vấn đề là mã Java đầu tiên phát hành tất cả các chủ đề, và sau đó ở cuối nó ngắt. Việc gián đoạn có cần thiết không? Chúng ta không thể chờ đợi cho đến khi tất cả các chủ đề thực sự kết thúc? Hoặc có thể chỉ bỏ qua ngắt (các luồng này đang chạy các tiến trình bằng cách sử dụng lệnh process exec và chúng sẽ kết thúc). Đây là mã có liên quan. Đầu tiên là mã cho chủ đề cá nhân:
String commandString = "./script.scr ";
process = Runtime.getRuntime().exec(commandString);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((lsString = bufferedReader.readLine()) != null)
{
System.out.println(lsString);
}
try
{
process.waitFor();
}
Bây giờ mã của phần mà công văn này đề:
public void stopWhenAllTaskFinished()
{
while(notFinished) {sleep(50);} //notFinished is class variable and somewhere else it will set to false.
//now finished.
//Interrupt all the threads
for (int i=0; i<nThreads; i++) {
threads[i].interrupt();
}
}
Chức năng này được gọi từ lớp học chính như:
obj.stopWhenAllTaskFinished()
tôi rất nhiều đánh giá cao mọi thông tin chi tiết hoặc câu trả lời.
Thật không may mô tả của bạn quá mơ hồ. Việc gián đoạn có thể hoặc có thể không cần thiết. Tất cả phụ thuộc vào những gì 'Thread' làm. – Frankie
Tôi đã thêm mã có liên quan – user984260
Thành thật mà nói nó trông giống như một kiểm tra hoang tưởng cho một cái gì đó mà không bao giờ xảy ra. – trutheality