oYTSK0Jj1{-s9B6eJkbUjto8?2$pM4PGpVF|&Y;}x?Vr-{N{`TkRR)a(
z&7m>cRN*FLKi?^XR)?BD{o2U{`3Qqh7y`v2I2U8&EfU(|
zBaN0T?RX?yFyW4ncoCDtWn@-ZC&kaWWE5-Tcq*rpI2rOlsFY)f{7Q>oo7a@H%AMwd
zyUQ5;S}%%28A!)%5~HCSlyxQv$U8nWtG&;q<%t^M2dQw>;YW#esmg3yc*&)j>T~3R
zBuxHhD6XQgTIJA~Bqo0jF9M7+udkQCTwqb^f;b<1Xw<=jH3pmQ{-P%a&PX*rNPDKy
zC#T*d(Gbmvpf+Hz-q(Q$Plb_b{%5l6Cekw4>gRPXwPMrY#{{iAMiWVEsjV37w3pDw
z6B%l&W3oLv*PnZ0J-AC(qL*V=749+kRG@A1HvgxY3VN887NW4YD6I+)8T9@wE4@sG
zkMIXNF#*1ossD||lh8?jnFlR;1m;`}>PM-=YJ5VM!onUfSfRItejMC@3Pmdvdr+ls
zjj|_{muU3Ag8zQK{uyq4r>q1``c?=t+X+z5Vjph9MmDzzTZFnpahX=ObGUYLxay?h
eI@f*T%2V?ohoPCnP=Z}zEdhr|G*&3uhP~fxSA&B9
literal 0
HcmV?d00001
diff --git a/bin/meins/src/Chopstick.class b/bin/meins/src/Chopstick.class
new file mode 100644
index 0000000000000000000000000000000000000000..12349278801bfa2ec0e77a8d512a48d5305d8c28
GIT binary patch
literal 1205
zcmcIj%We}f6g^JUPCA6X%Ny!;m2Q#^D~gby6bUJXMIRDKEF8ye+|JmR?dfC9mj6Kl
z3HE#x;!fJ8MH*09u(7V~bC1ux=laLbFW&&Xz;c2b!+fr^37z0&XMJE@h*};ds58tQ
zh$GR-gxT-B?Hwo?8OF8Q35tQeXP9`ZjgHS4##*bp4E1%}R|#$~Okd`0cyE0JHyQi5
zW4sDBJ5qfvZSHg?qPB)RZ+n@_!xNrPZVwdiE13yTASdLZ*jIdogst$tRe>8Dc`l+H
z@JL8?;z-j~M|w6+q;kXBq%fuAp5mj@qve9fQ>V_V%~c%O
zK0g*ZR_Q6rEWvza%x`H#uJ=x#XW2D#Q>2(~BEby9Vyk;;(^mA_?5~wJPIsx!H$~o4
zep`?;40By8MYb!vF8Ak$^*GRhSh^L%vqrPwXoz+kLpth4NN|T?p{h|0+++B3jRC1j
z=KrJ142dh^OM7e@c*yYK@7gYA_uS2YwS~I0WeYFWD_!<`YGii1bcmt3sY4)twrLUq
zmO(#`zAr-!{mspPu<2Q?2W7-lONYIsCCYFGll(DMrrib|sZ
literal 0
HcmV?d00001
diff --git a/bin/meins/src/EinThreadStarten.class b/bin/meins/src/EinThreadStarten.class
new file mode 100644
index 0000000000000000000000000000000000000000..2d6ba67bf42e0bce460e9df0357e5017a0c131fe
GIT binary patch
literal 570
zcmZ{h%}xR_5XYy8e5@#naxosNC%C}HlNt{iO-xV^Ac@D)9iX_|ZrZN#%}g}WyYJwu
z7^h$&G4V3fnf~&huaB>nHvl+;W*G_$c2iW^b)A*n3#A8Biz4oOVLj?H6d7#J#G~jY
zLQlH4qZvxipmd_N@}~?|TJ0f&;<<^j3{?j8U-rUUV=J)6;PXyfbS8Pkm`jspDiK~8
z%`
zrCFk+^4#SaS}LiXx4HDj^2GqHHdl`4I>xcmq%x)-dW$^q%XEid=gx;8qPWnZ>_T`+
zGK!!A>or(~4F=6t?{@)xZqQ1$k#7h-)ntxB$2@SwL&~50(K%P-=C9-9T4k^pXN3T%1Z$!^fd#9)Xb+Um8
T{3hAjf`Tn*%yZjh3$XJIbB3T-
literal 0
HcmV?d00001
diff --git a/bin/meins/src/Philosopher.class b/bin/meins/src/Philosopher.class
new file mode 100644
index 0000000000000000000000000000000000000000..444ef91401a749edb9b1949fbf5c5a889cb4eead
GIT binary patch
literal 2190
zcmeHI&rcIU6n@hd+O8m21yuYoAZoeLizhKANHCHVA@U=7obC?Yp}RBd%xnXHnTaNP
z^5P$5e6uZdjhg_5g9i_t-I;#xoA=&)-|UZ{pT7dYD`-}sL|`W7LYkJ*erqQbkuoX?
zxvoNm!1NL8vsT1px3%3l;=Uy?8Sz8A9;(Dx;rB4QJqkZtUL|l{i*A?)dQ5kO)yyhQ
zU^W-EcD9aT<1d61_9cP!W)3nUK5sEcwtPUKvaSMNh3f>SMx|_Mt#l2hNx8HyH8(2i
z^MLv)PDI44P?9EEbs`>{=hUn3g`5W5kC;YK!u%fVa=M7!TBL#EhDv2=%&Z?$i%5Q)
zV4L#DtUW6Z@73R>QZi(wK9er4!|B=nR#8UnNy5GQW}HOA7nYhd;TkiO#_H6^&e6d!
zG?%F`G?f8A6p{xkbSpL1?VW{1CsfG3>T$|&6Fkd2gIC|~bFD>iUJ|bEnA=bVnB&Kk
z8@t1GER4YhHFH8)riWU^S@AA=IywQ2JLK9>tjx70i-sW|yi#2g7(hM{EI?gMI@ZcJb6F7T@$O=BaFEII`
zG4%;B0zAdvIL;qK`4?fCTPr5SAYKh%Y4!zP1oe=#@z$>TFf4oqn!zEt5=*O%9D5SkIe_R=m^
zl{4t
+ 4.0.0
+ PP-Labs_WS-2024-2025
+ PP-Labs_WS-2024-2025
+ 0.0.1-SNAPSHOT
+
\ No newline at end of file
diff --git a/bin/src/.gitignore b/bin/src/.gitignore
new file mode 100644
index 0000000..1f3bdcd
--- /dev/null
+++ b/bin/src/.gitignore
@@ -0,0 +1,10 @@
+**/.DS_Store
+**/*.class
+*/bin/
+*/.project
+*/.classpath
+*/.factorypath
+*/.settings/
+*/target/
+*/.apt_generated/
+*/.apt_generated_tests/
diff --git a/bin/src/pp.01.01-Inheritance/README.md b/bin/src/pp.01.01-Inheritance/README.md
new file mode 100644
index 0000000..3b8b668
--- /dev/null
+++ b/bin/src/pp.01.01-Inheritance/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Start eines Threads durch und bei Vererbung"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-01-Inheritence.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-Solutions.html#laboraufgabe-start-eines-threads-durch-und-bei-vererbung)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.01.01-Inheritance/justfile b/bin/src/pp.01.01-Inheritance/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.01.01-Inheritance/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.01.01-Inheritance/pom.xml b/bin/src/pp.01.01-Inheritance/pom.xml
new file mode 100644
index 0000000..dccad59
--- /dev/null
+++ b/bin/src/pp.01.01-Inheritance/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.01.01-Inheritance
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Thermometer
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.01.01-Inheritance_solution/README.md b/bin/src/pp.01.01-Inheritance_solution/README.md
new file mode 100644
index 0000000..3b8b668
--- /dev/null
+++ b/bin/src/pp.01.01-Inheritance_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Start eines Threads durch und bei Vererbung"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-01-Inheritence.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-Solutions.html#laboraufgabe-start-eines-threads-durch-und-bei-vererbung)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.01.01-Inheritance_solution/justfile b/bin/src/pp.01.01-Inheritance_solution/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.01.01-Inheritance_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.01.01-Inheritance_solution/pom.xml b/bin/src/pp.01.01-Inheritance_solution/pom.xml
new file mode 100644
index 0000000..831eba3
--- /dev/null
+++ b/bin/src/pp.01.01-Inheritance_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.01.01-Inheritance_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Thermometer
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.01.02-Runnable/README.md b/bin/src/pp.01.02-Runnable/README.md
new file mode 100644
index 0000000..cb94908
--- /dev/null
+++ b/bin/src/pp.01.02-Runnable/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Start eines Threads als ``Runnable`` und Refactoring"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-02-Runnable.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-Solutions.html#laboraufgabe-start-eines-threads-als-runnable-und-refactoring)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.01.02-Runnable/justfile b/bin/src/pp.01.02-Runnable/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.01.02-Runnable/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.01.02-Runnable/pom.xml b/bin/src/pp.01.02-Runnable/pom.xml
new file mode 100644
index 0000000..1ec22f6
--- /dev/null
+++ b/bin/src/pp.01.02-Runnable/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.01.02-Runnable
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Starter
+ 19
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.01.02-Runnable_solution/README.md b/bin/src/pp.01.02-Runnable_solution/README.md
new file mode 100644
index 0000000..cb94908
--- /dev/null
+++ b/bin/src/pp.01.02-Runnable_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Start eines Threads als ``Runnable`` und Refactoring"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-02-Runnable.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-Solutions.html#laboraufgabe-start-eines-threads-als-runnable-und-refactoring)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.01.02-Runnable_solution/justfile b/bin/src/pp.01.02-Runnable_solution/justfile
new file mode 100644
index 0000000..36bfe45
--- /dev/null
+++ b/bin/src/pp.01.02-Runnable_solution/justfile
@@ -0,0 +1,21 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
+
+_exec class: clean compile
+ mvn exec:java -Dexec.mainClass=pp.{{class}}
+Starter:
+ just _exec Starter
+StarterInner:
+ just _exec StarterInner
+StarterLambda:
+ just _exec StarterLambda
diff --git a/bin/src/pp.01.02-Runnable_solution/pom.xml b/bin/src/pp.01.02-Runnable_solution/pom.xml
new file mode 100644
index 0000000..9d71db1
--- /dev/null
+++ b/bin/src/pp.01.02-Runnable_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.01.02-Runnable_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Starter
+ 19
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.01.03-EndThread/README.md b/bin/src/pp.01.03-EndThread/README.md
new file mode 100644
index 0000000..0ab65ac
--- /dev/null
+++ b/bin/src/pp.01.03-EndThread/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Lebenszyklus von Threads und Interrupts"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-03-EndThread.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-Solutions.html#laboraufgabe-lebenszyklus-von-threads-und-interrupts)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.01.03-EndThread/justfile b/bin/src/pp.01.03-EndThread/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.01.03-EndThread/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.01.03-EndThread/pom.xml b/bin/src/pp.01.03-EndThread/pom.xml
new file mode 100644
index 0000000..5ec939f
--- /dev/null
+++ b/bin/src/pp.01.03-EndThread/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.01.03-EndThread
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Runner
+ 19
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.01.03-EndThread_solution/README.md b/bin/src/pp.01.03-EndThread_solution/README.md
new file mode 100644
index 0000000..0ab65ac
--- /dev/null
+++ b/bin/src/pp.01.03-EndThread_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Lebenszyklus von Threads und Interrupts"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-03-EndThread.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/01-Solutions.html#laboraufgabe-lebenszyklus-von-threads-und-interrupts)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.01.03-EndThread_solution/justfile b/bin/src/pp.01.03-EndThread_solution/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.01.03-EndThread_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.01.03-EndThread_solution/pom.xml b/bin/src/pp.01.03-EndThread_solution/pom.xml
new file mode 100644
index 0000000..3938817
--- /dev/null
+++ b/bin/src/pp.01.03-EndThread_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.01.03-EndThread_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Runner
+ 19
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.02.01-MemoryBarrier/README.md b/bin/src/pp.02.01-MemoryBarrier/README.md
new file mode 100644
index 0000000..db7f17b
--- /dev/null
+++ b/bin/src/pp.02.01-MemoryBarrier/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Anwendung von Memory Barrieren"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-01-MemoryBarrier.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-Solutions.html#laboraufgabe-anwendung-von-memory-barrieren)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.02.01-MemoryBarrier/justfile b/bin/src/pp.02.01-MemoryBarrier/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.02.01-MemoryBarrier/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.02.01-MemoryBarrier/pom.xml b/bin/src/pp.02.01-MemoryBarrier/pom.xml
new file mode 100644
index 0000000..90602ab
--- /dev/null
+++ b/bin/src/pp.02.01-MemoryBarrier/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.02.01-MemoryBarrier
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.MemoryBarrierTest
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.02.01-MemoryBarrier_solution/README.md b/bin/src/pp.02.01-MemoryBarrier_solution/README.md
new file mode 100644
index 0000000..db7f17b
--- /dev/null
+++ b/bin/src/pp.02.01-MemoryBarrier_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Anwendung von Memory Barrieren"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-01-MemoryBarrier.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-Solutions.html#laboraufgabe-anwendung-von-memory-barrieren)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.02.01-MemoryBarrier_solution/justfile b/bin/src/pp.02.01-MemoryBarrier_solution/justfile
new file mode 100644
index 0000000..355c2fb
--- /dev/null
+++ b/bin/src/pp.02.01-MemoryBarrier_solution/justfile
@@ -0,0 +1,25 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
+
+_exec class: clean compile
+ mvn exec:java -Dexec.mainClass="pp.{{class}}" -Dexec.args=""
+MemoryBarrierTest1:
+ just _exec MemoryBarrierTest1
+MemoryBarrierTest1b:
+ just _exec MemoryBarrierTest1b
+MemoryBarrierTest2:
+ just _exec MemoryBarrierTest2
+MemoryBarrierTest5:
+ just _exec MemoryBarrierTest5
+MemoryBarrierTest6:
+ just _exec MemoryBarrierTest6
diff --git a/bin/src/pp.02.01-MemoryBarrier_solution/pom.xml b/bin/src/pp.02.01-MemoryBarrier_solution/pom.xml
new file mode 100644
index 0000000..d3d6fd6
--- /dev/null
+++ b/bin/src/pp.02.01-MemoryBarrier_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.02.01-MemoryBarrier_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.MemoryBarrierTest1
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.02.02-ThreadLocal/README.md b/bin/src/pp.02.02-ThreadLocal/README.md
new file mode 100644
index 0000000..d74df3c
--- /dev/null
+++ b/bin/src/pp.02.02-ThreadLocal/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "threadlokaler Speicher"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-02-ThreadLocal.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-Solutions.html#laboraufgabe-threadlokaler-speicher)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.02.02-ThreadLocal/justfile b/bin/src/pp.02.02-ThreadLocal/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.02.02-ThreadLocal/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.02.02-ThreadLocal/pom.xml b/bin/src/pp.02.02-ThreadLocal/pom.xml
new file mode 100644
index 0000000..daf79da
--- /dev/null
+++ b/bin/src/pp.02.02-ThreadLocal/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.02.02-ThreadLocal
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.MyThreadLocalRandom
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.02.02-ThreadLocal_solution/README.md b/bin/src/pp.02.02-ThreadLocal_solution/README.md
new file mode 100644
index 0000000..d74df3c
--- /dev/null
+++ b/bin/src/pp.02.02-ThreadLocal_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "threadlokaler Speicher"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-02-ThreadLocal.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-Solutions.html#laboraufgabe-threadlokaler-speicher)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.02.02-ThreadLocal_solution/justfile b/bin/src/pp.02.02-ThreadLocal_solution/justfile
new file mode 100644
index 0000000..b74f728
--- /dev/null
+++ b/bin/src/pp.02.02-ThreadLocal_solution/justfile
@@ -0,0 +1,25 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
+
+_exec class: clean compile
+ mvn exec:java -Dexec.mainClass="pp.{{class}}" -Dexec.args=""
+MyThreadLocalRandom0:
+ just _exec MyThreadLocalRandom0
+MyThreadLocalRandom1:
+ just _exec MyThreadLocalRandom1
+MyThreadLocalRandom2:
+ just _exec MyThreadLocalRandom2
+MyThreadLocalRandom3:
+ just _exec MyThreadLocalRandom3
+MyThreadLocalRandom4:
+ just _exec MyThreadLocalRandom4
diff --git a/bin/src/pp.02.02-ThreadLocal_solution/pom.xml b/bin/src/pp.02.02-ThreadLocal_solution/pom.xml
new file mode 100644
index 0000000..2d598eb
--- /dev/null
+++ b/bin/src/pp.02.02-ThreadLocal_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.02.02-ThreadLocal_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.MyThreadLocalRandom0
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.02.03-Lock/README.md b/bin/src/pp.02.03-Lock/README.md
new file mode 100644
index 0000000..330a8b6
--- /dev/null
+++ b/bin/src/pp.02.03-Lock/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "gegenseitiger Ausschluss"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-03-Lock.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-Solutions.html#laboraufgabe-gegenseitiger-ausschluss)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.02.03-Lock/justfile b/bin/src/pp.02.03-Lock/justfile
new file mode 100644
index 0000000..870c391
--- /dev/null
+++ b/bin/src/pp.02.03-Lock/justfile
@@ -0,0 +1,17 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
+
+_exec factory: clean compile
+ mvn exec:java -Dexec.mainClass="pp.{{factory}}" -Dexec.args=""
+Factory:
+ just _exec Factory
diff --git a/bin/src/pp.02.03-Lock/pom.xml b/bin/src/pp.02.03-Lock/pom.xml
new file mode 100644
index 0000000..4bdb982
--- /dev/null
+++ b/bin/src/pp.02.03-Lock/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.02.03-Lock
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Factory
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.02.03-Lock_solution/README.md b/bin/src/pp.02.03-Lock_solution/README.md
new file mode 100644
index 0000000..330a8b6
--- /dev/null
+++ b/bin/src/pp.02.03-Lock_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "gegenseitiger Ausschluss"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-03-Lock.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/02-Solutions.html#laboraufgabe-gegenseitiger-ausschluss)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/02-konkurrierenderZugriff.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/02-konkurrierenderZugriff.html)
diff --git a/bin/src/pp.02.03-Lock_solution/justfile b/bin/src/pp.02.03-Lock_solution/justfile
new file mode 100644
index 0000000..6373652
--- /dev/null
+++ b/bin/src/pp.02.03-Lock_solution/justfile
@@ -0,0 +1,25 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
+
+_exec class: clean compile
+ mvn exec:java -Dexec.mainClass="pp.{{class}}" -Dexec.args=""
+Factory0:
+ just _exec Factory0
+Factory1:
+ just _exec Factory1
+Factory2:
+ just _exec Factory2
+Factory3:
+ just _exec Factory3
+Factory4:
+ just _exec Factory4
diff --git a/bin/src/pp.02.03-Lock_solution/pom.xml b/bin/src/pp.02.03-Lock_solution/pom.xml
new file mode 100644
index 0000000..fb124bf
--- /dev/null
+++ b/bin/src/pp.02.03-Lock_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.02.03-Lock_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Factory0
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.03.01-SynchPhilosopher/README.md b/bin/src/pp.03.01-SynchPhilosopher/README.md
new file mode 100644
index 0000000..dc4f6d7
--- /dev/null
+++ b/bin/src/pp.03.01-SynchPhilosopher/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Dinnierende Philosoph:innen"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-01-SynchPhilosopher.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-Solutions.html#laboraufgabe-dinierende-philosophinnen)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/03-steuerung.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/03-steuerung.html)
diff --git a/bin/src/pp.03.01-SynchPhilosopher/justfile b/bin/src/pp.03.01-SynchPhilosopher/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.03.01-SynchPhilosopher/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.03.01-SynchPhilosopher/pom.xml b/bin/src/pp.03.01-SynchPhilosopher/pom.xml
new file mode 100644
index 0000000..6f69d87
--- /dev/null
+++ b/bin/src/pp.03.01-SynchPhilosopher/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.03.01-SynchPhilosopher
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.PhilosopherExperiment
+ 19
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.03.01-SynchPhilosopher_solution/README.md b/bin/src/pp.03.01-SynchPhilosopher_solution/README.md
new file mode 100644
index 0000000..dc4f6d7
--- /dev/null
+++ b/bin/src/pp.03.01-SynchPhilosopher_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Dinnierende Philosoph:innen"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-01-SynchPhilosopher.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-Solutions.html#laboraufgabe-dinierende-philosophinnen)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/03-steuerung.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/03-steuerung.html)
diff --git a/bin/src/pp.03.01-SynchPhilosopher_solution/justfile b/bin/src/pp.03.01-SynchPhilosopher_solution/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.03.01-SynchPhilosopher_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.03.01-SynchPhilosopher_solution/pom.xml b/bin/src/pp.03.01-SynchPhilosopher_solution/pom.xml
new file mode 100644
index 0000000..b4f0c16
--- /dev/null
+++ b/bin/src/pp.03.01-SynchPhilosopher_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.03.01-SynchPhilosopher_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.PhilosopherExperiment
+ 19
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.03.02-BoundedQueueWaitNotify/README.md b/bin/src/pp.03.02-BoundedQueueWaitNotify/README.md
new file mode 100644
index 0000000..12cb5d9
--- /dev/null
+++ b/bin/src/pp.03.02-BoundedQueueWaitNotify/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "``wait``/``notifyAll`` für Ringpuffer"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-02-BoundedQueueWaitNotify.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-Solutions.html#laboraufgabe-waitnotifyall-für-ringpuffer)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/03-steuerung.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/03-steuerung.html)
diff --git a/bin/src/pp.03.02-BoundedQueueWaitNotify/justfile b/bin/src/pp.03.02-BoundedQueueWaitNotify/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.03.02-BoundedQueueWaitNotify/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.03.02-BoundedQueueWaitNotify/pom.xml b/bin/src/pp.03.02-BoundedQueueWaitNotify/pom.xml
new file mode 100644
index 0000000..f20941f
--- /dev/null
+++ b/bin/src/pp.03.02-BoundedQueueWaitNotify/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.03.02-BoundedQueueWaitNotify
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.BoundedBuffer
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/README.md b/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/README.md
new file mode 100644
index 0000000..12cb5d9
--- /dev/null
+++ b/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "``wait``/``notifyAll`` für Ringpuffer"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-02-BoundedQueueWaitNotify.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-Solutions.html#laboraufgabe-waitnotifyall-für-ringpuffer)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/03-steuerung.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/03-steuerung.html)
diff --git a/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/justfile b/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/pom.xml b/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/pom.xml
new file mode 100644
index 0000000..b4580bc
--- /dev/null
+++ b/bin/src/pp.03.02-BoundedQueueWaitNotify_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.03.02-BoundedQueueWaitNotify_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.BoundedBuffer
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.03.03-BoundedQueueAwaitSignal/README.md b/bin/src/pp.03.03-BoundedQueueAwaitSignal/README.md
new file mode 100644
index 0000000..dee18ac
--- /dev/null
+++ b/bin/src/pp.03.03-BoundedQueueAwaitSignal/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "``await``/``signal`` für Ringpuffer”
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-03-BoundedQueueAwaitSignal.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-Solutions.html#laboraufgabe-awaitsignal-für-ringpuffer)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/03-steuerung.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/03-steuerung.html)
diff --git a/bin/src/pp.03.03-BoundedQueueAwaitSignal/justfile b/bin/src/pp.03.03-BoundedQueueAwaitSignal/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.03.03-BoundedQueueAwaitSignal/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.03.03-BoundedQueueAwaitSignal/pom.xml b/bin/src/pp.03.03-BoundedQueueAwaitSignal/pom.xml
new file mode 100644
index 0000000..8030e3b
--- /dev/null
+++ b/bin/src/pp.03.03-BoundedQueueAwaitSignal/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.03.03-BoundedQueueAwaitSignal
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.BoundedBuffer
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/README.md b/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/README.md
new file mode 100644
index 0000000..dee18ac
--- /dev/null
+++ b/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "``await``/``signal`` für Ringpuffer”
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-03-BoundedQueueAwaitSignal.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/03-Solutions.html#laboraufgabe-awaitsignal-für-ringpuffer)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/03-steuerung.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/03-steuerung.html)
diff --git a/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/justfile b/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/pom.xml b/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/pom.xml
new file mode 100644
index 0000000..90093ec
--- /dev/null
+++ b/bin/src/pp.03.03-BoundedQueueAwaitSignal_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.03.03-BoundedQueueAwaitSignal_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.BoundedBuffer
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.04.01-RunnableReturn/README.md b/bin/src/pp.04.01-RunnableReturn/README.md
new file mode 100644
index 0000000..3fa85f7
--- /dev/null
+++ b/bin/src/pp.04.01-RunnableReturn/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Thread für ``Runnable`` mit Rückgabewert"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-01-RunnableWithResult.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-Solutions.html#laboraufgabe-thread-für-runnable-mit-rückgabewert)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/04-threadpools.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/04-threadpools.html)
diff --git a/bin/src/pp.04.01-RunnableReturn/justfile b/bin/src/pp.04.01-RunnableReturn/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.04.01-RunnableReturn/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.04.01-RunnableReturn/pom.xml b/bin/src/pp.04.01-RunnableReturn/pom.xml
new file mode 100644
index 0000000..2a010e3
--- /dev/null
+++ b/bin/src/pp.04.01-RunnableReturn/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.04.01-RunnableReturn
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Main
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.04.01-RunnableReturn_solution/README.md b/bin/src/pp.04.01-RunnableReturn_solution/README.md
new file mode 100644
index 0000000..3fa85f7
--- /dev/null
+++ b/bin/src/pp.04.01-RunnableReturn_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Thread für ``Runnable`` mit Rückgabewert"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-01-RunnableWithResult.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-Solutions.html#laboraufgabe-thread-für-runnable-mit-rückgabewert)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/04-threadpools.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/04-threadpools.html)
diff --git a/bin/src/pp.04.01-RunnableReturn_solution/justfile b/bin/src/pp.04.01-RunnableReturn_solution/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.04.01-RunnableReturn_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.04.01-RunnableReturn_solution/pom.xml b/bin/src/pp.04.01-RunnableReturn_solution/pom.xml
new file mode 100644
index 0000000..267481c
--- /dev/null
+++ b/bin/src/pp.04.01-RunnableReturn_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.04.01-RunnableReturn_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Main
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.04.02-Future/README.md b/bin/src/pp.04.02-Future/README.md
new file mode 100644
index 0000000..bd2c085
--- /dev/null
+++ b/bin/src/pp.04.02-Future/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Asynchrone Ausführung mit ``Callable`` und ``Future``"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-02-Future.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-Solutions.html#laboraufgabe-asynchrone-ausführung-mit-callable-und-future)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/04-threadpools.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/04-threadpools.html)
diff --git a/bin/src/pp.04.02-Future/justfile b/bin/src/pp.04.02-Future/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.04.02-Future/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.04.02-Future/pom.xml b/bin/src/pp.04.02-Future/pom.xml
new file mode 100644
index 0000000..a390e40
--- /dev/null
+++ b/bin/src/pp.04.02-Future/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.04.02-Future
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Main
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.04.02-Future_solution/README.md b/bin/src/pp.04.02-Future_solution/README.md
new file mode 100644
index 0000000..bd2c085
--- /dev/null
+++ b/bin/src/pp.04.02-Future_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Asynchrone Ausführung mit ``Callable`` und ``Future``"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-02-Future.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-Solutions.html#laboraufgabe-asynchrone-ausführung-mit-callable-und-future)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/04-threadpools.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/04-threadpools.html)
diff --git a/bin/src/pp.04.02-Future_solution/justfile b/bin/src/pp.04.02-Future_solution/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.04.02-Future_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.04.02-Future_solution/pom.xml b/bin/src/pp.04.02-Future_solution/pom.xml
new file mode 100644
index 0000000..1839240
--- /dev/null
+++ b/bin/src/pp.04.02-Future_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.04.02-Future_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Main
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.04.03-ThreadPoolSize/README.md b/bin/src/pp.04.03-ThreadPoolSize/README.md
new file mode 100644
index 0000000..3a03d3a
--- /dev/null
+++ b/bin/src/pp.04.03-ThreadPoolSize/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Thread Pools"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-03-ThreadPoolSize.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-Solutions.html#laboraufgabe-thread-pools)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/04-threadpools.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/04-threadpools.html)
diff --git a/bin/src/pp.04.03-ThreadPoolSize/justfile b/bin/src/pp.04.03-ThreadPoolSize/justfile
new file mode 100644
index 0000000..848084f
--- /dev/null
+++ b/bin/src/pp.04.03-ThreadPoolSize/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile exec:java
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.04.03-ThreadPoolSize/pom.xml b/bin/src/pp.04.03-ThreadPoolSize/pom.xml
new file mode 100644
index 0000000..56792dd
--- /dev/null
+++ b/bin/src/pp.04.03-ThreadPoolSize/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.04.03-ThreadPoolSize
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.Task
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.04.03-ThreadPoolSize_solution/README.md b/bin/src/pp.04.03-ThreadPoolSize_solution/README.md
new file mode 100644
index 0000000..3a03d3a
--- /dev/null
+++ b/bin/src/pp.04.03-ThreadPoolSize_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Thread Pools"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-03-ThreadPoolSize.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/04-Solutions.html#laboraufgabe-thread-pools)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/04-threadpools.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/04-threadpools.html)
diff --git a/bin/src/pp.04.03-ThreadPoolSize_solution/justfile b/bin/src/pp.04.03-ThreadPoolSize_solution/justfile
new file mode 100644
index 0000000..edbee11
--- /dev/null
+++ b/bin/src/pp.04.03-ThreadPoolSize_solution/justfile
@@ -0,0 +1,20 @@
+default:
+ mvn clean compile exec:java
+
+innerClass: (_exec "pp.TaskInnerClass" "")
+lambda: (_exec "pp.TaskLambda" "")
+staticClass: (_exec "pp.TaskStaticClass" "")
+
+_exec class args:
+ mvn exec:java -Dexec.mainClass={{class}} -Dexec.args={{args}}
+
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.04.03-ThreadPoolSize_solution/pom.xml b/bin/src/pp.04.03-ThreadPoolSize_solution/pom.xml
new file mode 100644
index 0000000..a89caae
--- /dev/null
+++ b/bin/src/pp.04.03-ThreadPoolSize_solution/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ pp
+ pp.04.03-ThreadPoolSize_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ pp.TaskLambda
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.05.01-CounterAtomic/README.md b/bin/src/pp.05.01-CounterAtomic/README.md
new file mode 100644
index 0000000..ec96a93
--- /dev/null
+++ b/bin/src/pp.05.01-CounterAtomic/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Counter mit Atomics threadsicher machen"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/05-01-CounterAtomic.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/05-Solutions.html#laboraufgabe-counter-mit-atomics-threadsicher-machen)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/05-atomics.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/05-atomics.html)
diff --git a/bin/src/pp.05.01-CounterAtomic/justfile b/bin/src/pp.05.01-CounterAtomic/justfile
new file mode 100644
index 0000000..43d3962
--- /dev/null
+++ b/bin/src/pp.05.01-CounterAtomic/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile test
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.05.01-CounterAtomic/pom.xml b/bin/src/pp.05.01-CounterAtomic/pom.xml
new file mode 100644
index 0000000..29d7273
--- /dev/null
+++ b/bin/src/pp.05.01-CounterAtomic/pom.xml
@@ -0,0 +1,60 @@
+
+ 4.0.0
+ pp
+ pp.05.01-CounterAtomic
+ 1.0-SNAPSHOT
+ jar
+
+
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/bin/src/pp.05.01-CounterAtomic_solution/README.md b/bin/src/pp.05.01-CounterAtomic_solution/README.md
new file mode 100644
index 0000000..ec96a93
--- /dev/null
+++ b/bin/src/pp.05.01-CounterAtomic_solution/README.md
@@ -0,0 +1,7 @@
+# Laboraufgabe "Counter mit Atomics threadsicher machen"
+- [Aufgabenstellung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/05-01-CounterAtomic.html)
+- [Musterlösung](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/labs/05-Solutions.html#laboraufgabe-counter-mit-atomics-threadsicher-machen)
+
+# Materialien
+- [Folien](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/slides/05-atomics.html)
+- [Skript](https://services.informatik.hs-mannheim.de/~s.leuchter/pp/notes/05-atomics.html)
diff --git a/bin/src/pp.05.01-CounterAtomic_solution/justfile b/bin/src/pp.05.01-CounterAtomic_solution/justfile
new file mode 100644
index 0000000..43d3962
--- /dev/null
+++ b/bin/src/pp.05.01-CounterAtomic_solution/justfile
@@ -0,0 +1,12 @@
+default:
+ mvn clean compile test
+exec args:
+ mvn exec:java -Dexec.args={{args}}
+clean:
+ mvn clean
+compile:
+ mvn compile
+test:
+ mvn test
+javadoc:
+ mvn javadoc:javadoc
diff --git a/bin/src/pp.05.01-CounterAtomic_solution/pom.xml b/bin/src/pp.05.01-CounterAtomic_solution/pom.xml
new file mode 100644
index 0000000..2b5d6c9
--- /dev/null
+++ b/bin/src/pp.05.01-CounterAtomic_solution/pom.xml
@@ -0,0 +1,60 @@
+
+ 4.0.0
+ pp
+ pp.05.01-CounterAtomic_solution
+ 1.0-SNAPSHOT
+ jar
+
+
+ 10
+ UTF-8
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.0
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+ net.jcip
+ jcip-annotations
+ 1.0
+ provided
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.9.0
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.5.0
+
+ private
+ en_US
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..88d3dc7
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,6 @@
+
+ 4.0.0
+ PP-Labs_WS-2024-2025
+ PP-Labs_WS-2024-2025
+ 0.0.1-SNAPSHOT
+
\ No newline at end of file