diff --git a/src/main/java/lab/exc1/Message.java b/src/main/java/lab/exc1/Message.java
new file mode 100644
index 0000000000000000000000000000000000000000..827b45813b83d8623851909de6d4c171a7aca466
--- /dev/null
+++ b/src/main/java/lab/exc1/Message.java
@@ -0,0 +1,15 @@
+package lab.exc1;
+
+public class Message {
+	private final String message;
+	private final int number;
+	public Message(String message,int number) {
+		this.message=message;
+		this.number=number;
+	}
+	public void run() {
+		for (int i = 0; i < number; i++) {
+			System.out.println(message + ": " + i +" iteration");
+		}
+	}
+}
diff --git a/src/main/java/lab/exc1/TestMessage.java b/src/main/java/lab/exc1/TestMessage.java
new file mode 100644
index 0000000000000000000000000000000000000000..b7622d6c0ce7f510df7fb1ec855e2fede625dea3
--- /dev/null
+++ b/src/main/java/lab/exc1/TestMessage.java
@@ -0,0 +1,18 @@
+package lab.exc1;
+import java.util.Random;
+
+public class TestMessage {
+
+
+	public static void main (String[] args) {
+		Random rnd = new Random();
+		Message[] messages = new Message[10];
+		for (int i=0;i<messages.length ;i++) {
+			messages[i] = new Message("Message" + i, rnd.nextInt(10,20));
+		}
+		for(Message msg: messages) {
+			msg.run();
+		}
+	}
+
+}
diff --git a/src/main/java/lab/exc2/Message.java b/src/main/java/lab/exc2/Message.java
new file mode 100644
index 0000000000000000000000000000000000000000..59dd4fb1a0190f3078f688f9da2a5ed7145a1894
--- /dev/null
+++ b/src/main/java/lab/exc2/Message.java
@@ -0,0 +1,15 @@
+package lab.exc2;
+public class Message extends Thread {
+	private final String message;
+	private final int number;
+	public Message(String message,int number) {
+		this.message=message;
+		this.number=number;
+	}
+	@Override
+	public void run() {
+		for (int i = 0; i < number; i++) {
+			System.out.println(message + ": "  +i + " iteration");
+		}
+	}
+}
diff --git a/src/main/java/lab/exc2/TestMessage.java b/src/main/java/lab/exc2/TestMessage.java
new file mode 100644
index 0000000000000000000000000000000000000000..1fde099c6cdc8a698b886bc5e8bcb89a02362260
--- /dev/null
+++ b/src/main/java/lab/exc2/TestMessage.java
@@ -0,0 +1,16 @@
+package lab.exc2;
+import java.util.Random;
+public class TestMessage {
+
+	public static void main (String[] args) {
+		Random rnd = new Random();
+		Message[] messages = new Message[10];
+		for (int i=0;i<messages.length ;i++) {
+			messages[i] = new Message("Message" + i, rnd.nextInt(10,20));
+		}
+		for(Message msg: messages) {
+			msg.start();
+		}
+	}
+
+}
diff --git a/src/main/java/lab/exc3/Message.java b/src/main/java/lab/exc3/Message.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a07f6001c43f7c4b54629131324d5c2e23f9252
--- /dev/null
+++ b/src/main/java/lab/exc3/Message.java
@@ -0,0 +1,20 @@
+package lab.exc3;
+public class Message extends Thread {
+	private final String message;
+	private final int number;
+	public Message(String message,int number) {
+		this.message=message;
+		this.number=number;
+	}
+	@Override
+	public void run() {
+		for (int i = 0; i < number; i++) {
+			System.out.println(message + ": "  +i + " iteration");
+			try {
+				Thread.sleep(100);
+			}catch (InterruptedException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+}
diff --git a/src/main/java/lab/exc3/TestMessage.java b/src/main/java/lab/exc3/TestMessage.java
new file mode 100644
index 0000000000000000000000000000000000000000..3769131827da25d24d25b4ef6c6fd48cbe48f49e
--- /dev/null
+++ b/src/main/java/lab/exc3/TestMessage.java
@@ -0,0 +1,16 @@
+package lab.exc3;
+import java.util.Random;
+public class TestMessage {
+
+	public static void main (String[] args) {
+		Random rnd = new Random();
+		Message[] messages = new Message[10];
+		for (int i=0;i<messages.length ;i++) {
+			messages[i] = new Message("Message" + i, rnd.nextInt(10,20));
+		}
+		for(Message msg: messages) {
+			msg.start();
+		}
+	}
+
+}
diff --git a/src/main/java/lab/exc4/Message.java b/src/main/java/lab/exc4/Message.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c83998270f05268176255d7ac57f8d1180681ca
--- /dev/null
+++ b/src/main/java/lab/exc4/Message.java
@@ -0,0 +1,25 @@
+package lab.exc4;
+import java.util.Random;
+
+public class Message extends Thread {
+	private final String message;
+	private final int number;
+	private final Random rnd= new Random();
+	
+	public Message(String message,int number) {
+		this.message=message;
+		this.number=number;
+	}
+	
+	@Override
+	public void run() {
+		for (int i = 0; i < number; i++) {
+			System.out.println(message + ": "  +i + " iteration");
+			try {
+				Thread.sleep(rnd.nextInt(10,100));
+			}catch (InterruptedException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+}
diff --git a/src/main/java/lab/exc4/TestMessage.java b/src/main/java/lab/exc4/TestMessage.java
new file mode 100644
index 0000000000000000000000000000000000000000..30fe092dfc36ae77a298cd3353b0b89a09682062
--- /dev/null
+++ b/src/main/java/lab/exc4/TestMessage.java
@@ -0,0 +1,16 @@
+package lab.exc4;
+import java.util.Random;
+public class TestMessage {
+
+	public static void main (String[] args) {
+		Random rnd = new Random();
+		Message[] messages = new Message[10];
+		for (int i=0;i<messages.length ;i++) {
+			messages[i] = new Message("Message" + i, rnd.nextInt(10,20));
+		}
+		for(Message msg: messages) {
+			msg.start();
+		}
+	}
+
+}