From 5fdcd9349cfd33e1485bf439ea860550baddd95a Mon Sep 17 00:00:00 2001 From: mohammadreza Date: Mon, 8 Jun 2026 00:39:47 +0330 Subject: [PATCH] implement Main.java --- src/main/java/Main.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 82bd239..81040db 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -37,12 +37,38 @@ public class Main { // TODO: // Students may print helpful debug information here, // for example which chunk is assigned to which worker thread. + System.out.println( + "new thread " + workerThread.getName() + " created for chunk " + chunk.getChunkId() + ); } // 4. Create and start monitor thread ProgressMonitor monitor = new ProgressMonitor(config, chunks); Thread monitorThread = new Thread(monitor, "Progress-Monitor"); + monitorThread.start(); + + for (Thread thread : workerThreads) { + + thread.start(); + } + + try { + for (Thread thread : workerThreads) { + thread.join(); + } + } catch (InterruptedException e) { + System.out.println("Download manager was interrupted. Stopping all workers..."); + monitorThread.interrupt(); + + for (Thread worker : workerThreads) { + worker.interrupt(); + } + + Thread.currentThread().interrupt(); + return; + } + // TODO: // Start the monitor thread before starting the workers // so that progress can be displayed while downloading happens.