Belirli bir süre sonra iş parçamı durdurmak istiyorum. Burada örnek kodumu ekledim. İş parçacığının herhangi biri 6 saniyeden uzun sürüyorsa, belirli bir iş parçacığını durdurmak istiyorum. İpin geri kalan kısmı etkilenmemelidir. Zamanlayıcıyı mı, yoksa daha iyi bir şekilde elde etmem mi gerekiyor? Eğer Timer kullansaydım, her iş parçacığı için yeni bir zamanlayıcı oluşturmam gerektiğini ve işin 6sec'den önce bitmesi durumunda zamanlayıcıyı iptal etmem gerektiğini varsayalım?İş parçacığını belirli bir süre sonra durdurun
class MyRunnableThread implements Runnable{
public static int myCount = 0;
private String fname = null;
public MyRunnableThread(String fname){
this.fname = fname;
}
public void run() {
try{
//read the content based on text and peforms the operation
//File.read(this.fname)
System.out.println("Run method stuff"+ this.fname);
} catch (Exception iex) {
System.out.println("Exception in thread: "+iex.getMessage());
}
}
}
public class RunMyThread {
public static void main(String a[]){
System.out.println("Starting Main Thread...");
String[] fname = {"file1.txt","file2.txt","file3.txt","file4.txt","file5.txt"};
for(int i=0;i<5;i++){
try{
MyRunnableThread mrt = new MyRunnableThread(fname[i]);
Thread t = new Thread(mrt);
System.out.println("Main Thread start "+i);
t.start();
//stop the thread support run method takes more than 6seconds
System.out.println("Main Thread end "+ i);
} catch (Exception iex){
System.out.println("Exception in main thread: "+iex.getMessage());
}
}
System.out.println("End of Main Thread...");
}
}
kullanmayı düşünün [ 'ExecutorService'] (https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html) + [Gelecek] (https://docs.oracle.com/javase/8/ docs/api/java/util/concurrent/Future.html) gibi amaçlar için özel olarak tasarlanmış ve büyük işlevler sunmaktadır. –