feat: Add comprehensive examples from multithreading and hashing lectures
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package lecture.multithreading.basics;
|
||||
|
||||
|
||||
public class InterruptExample {
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
Thread worker = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println("👷 Worker started...");
|
||||
|
||||
try {
|
||||
for (int i = 1; i <= 10; i++) {
|
||||
System.out.println(" worker: stage " + i);
|
||||
Thread.sleep(1000); // Each step takes 1 second
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
System.out.println("🛑 Worker: Hey! Someone cut me off!");
|
||||
System.out.println("👷 Worker: OK, I'm finishing...");
|
||||
}
|
||||
|
||||
System.out.println("👷 Goodbye worker!");
|
||||
}
|
||||
});
|
||||
|
||||
worker.start();
|
||||
|
||||
Thread.sleep(6500); // Let the worker work for 6.5 seconds
|
||||
|
||||
System.out.println("💀 Main thread: That's enough! Cut it!");
|
||||
worker.interrupt(); // Tells the worker to stop
|
||||
|
||||
worker.join();
|
||||
System.out.println("Everything is finished!");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user