Как остановить поток после завершения запуска?

У меня есть список задач и ограниченное количество потоков. Цель состоит в том, чтобы определить время, необходимое для выполнения задач с использованием этого количества потоков.

Я знаю, что что-то не так с тем, как я использую темы иRunnable объект. Я новичок в них и могуКажется, я не могу понять, как это исправить.

Это ошибки сjava.lang.OutOfMemoryError: Java heap space error на линииworker.start() через несколько секунд.

Вот мой код:

public class Tasks {

static Timer timer; //times how long it takes to complete all tasks

public static void main(String[] args) {
    Job t1 = new Sleep(5);
    Job t2 = new Sum(1000);
    Job t3 = new Sleep(3);
    Job t4 = new Sleep(10);
    Job t5 =  new Sum(10);
    Graph g = new Graph(5);
    g.getNumEdges();
    g.addEdge(t1, t2);
    g.addEdge(t2, t3);
    g.addEdge(t2, t4);
    g.addEdge(t3, t5);
    g.addEdge(t4, t5);
    //System.out.println(t5.getPredecessor());
    System.out.println(parseGraph(g, 2));

}

public static String parseGraph(Graph graph, int K)
{
    long startTime = System.nanoTime();//start timer
    int numThreads = K;
    ArrayList x = graph.getNodes();
    //check for cycles
    CycleFinder dc = new CycleFinder(graph);
    if(dc.hasCycle()==true)
    {
        System.out.println(dc.cycle());
        return ("The graph has cycles and could not be parsed through.");
    }
    List threads = new ArrayList();
    ArrayList ready = new ArrayList();
    while (x.isEmpty()!= true)
    {
        for(int i=0; i

Ответы на вопрос(1)

Ваш ответ на вопрос