diff --git a/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo04.java b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo04.java
new file mode 100644
index 0000000000000000000000000000000000000000..54bfbe9681345628c99ae2081f94a4c79bb337f1
--- /dev/null
+++ b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo04.java
@@ -0,0 +1,70 @@
+package de.hdm.jordine.vorlesung.concurrency.demo;
+
+import javazoom.jl.player.Player;
+
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
+import java.util.Scanner;
+import java.util.concurrent.locks.ReentrantLock;
+
+// Inspired by https://www.delftstack.com/de/howto/java/java-play-mp3/
+public class AudioPlayerDemo04 {
+
+    private Player player;
+    private ReentrantLock lock = new ReentrantLock();
+
+    public void playAudio(String path){
+        try {
+            lock.lock();
+            FileInputStream fileInputStream = new FileInputStream(path);
+            BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
+            player = new Player(bufferedInputStream);
+
+            System.out.println("Playing " + path);
+            player.play();
+
+            lock.unlock();
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void main(String[] args) throws InterruptedException {
+        AudioPlayerDemo04 demo = new AudioPlayerDemo04();
+
+        Scanner sc = new Scanner(System.in);
+
+        System.out.println("Write stop to stop the music: ");
+
+        Thread t0 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                System.out.println("Starting t0");
+                demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_01.mp3");
+            }
+        });
+
+        Thread t1 = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    Thread.sleep(1000);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                System.out.println("Starting t1");
+                demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_02.mp3");
+            }
+        });
+
+        t0.start();
+        t1.start();
+
+        if (sc.nextLine().equalsIgnoreCase("stop")) {
+            demo.player.close();
+        }
+
+    }
+
+}