diff --git a/SingletonClasses/.idea/.gitignore b/SingletonClasses/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/SingletonClasses/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/SingletonClasses/.idea/misc.xml b/SingletonClasses/.idea/misc.xml new file mode 100644 index 0000000..31e1ebc --- /dev/null +++ b/SingletonClasses/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SingletonClasses/.idea/modules.xml b/SingletonClasses/.idea/modules.xml new file mode 100644 index 0000000..a7beec2 --- /dev/null +++ b/SingletonClasses/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/SingletonClasses/.idea/vcs.xml b/SingletonClasses/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/SingletonClasses/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SingletonClasses/LogManagement.java b/SingletonClasses/LogManagement.java new file mode 100644 index 0000000..5d2bfe2 --- /dev/null +++ b/SingletonClasses/LogManagement.java @@ -0,0 +1,28 @@ +package SingletonClasses; + +public class LogManagement { + + // First we create an instance of the class + private static LogManagement logM; + + // Second, we create a PRIVATE constructor (PRIVATE TO AVOID INSTANTIATION) + private LogManagement() { + + } + + // We create public method to access the one and ONLY instance + public static LogManagement FuncLog() { + if (logM == null) { + synchronized (LogManagement.class) { + if (logM == null) { + logM = new LogManagement(); + } + } + } + return logM; + } + + public void Logs() { + System.out.println("Detailed logs on the way"); + } +} diff --git a/SingletonClasses/LogReading.java b/SingletonClasses/LogReading.java new file mode 100644 index 0000000..07bee69 --- /dev/null +++ b/SingletonClasses/LogReading.java @@ -0,0 +1,11 @@ +package SingletonClasses; + +/** + * LogReader + */ +public class LogReading { + public static void main(String[] args) { + LogManagement.FuncLog().Logs(); + + } +} diff --git a/SingletonClasses/MultiThreads.java b/SingletonClasses/MultiThreads.java new file mode 100644 index 0000000..03ca496 --- /dev/null +++ b/SingletonClasses/MultiThreads.java @@ -0,0 +1,35 @@ +package SingletonClasses; + +public class MultiThreads { + public static void main(String[] args) { + + + Runnable tast = () -> { + LogManagement.FuncLog().Logs(); + }; + Thread thread1 = new Thread(tast); + Thread thread2 = new Thread(tast); + Thread thread3 = new Thread(tast); + Thread thread4 = new Thread(tast); + Thread thread5 = new Thread(tast); + Thread thread6 = new Thread(tast); + + thread1.start(); + thread2.start(); + thread3.start(); + thread4.start(); + thread5.start(); + thread6.start(); + try{ + + thread1.join(); + thread2.join(); + thread3.join(); + thread4.join(); + thread5.join(); + thread6.join(); + }catch (InterruptedException e){ + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/SingletonClasses/SingletonClasses.iml b/SingletonClasses/SingletonClasses.iml new file mode 100644 index 0000000..cd06a88 --- /dev/null +++ b/SingletonClasses/SingletonClasses.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/.gitignore b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/misc.xml b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/misc.xml new file mode 100644 index 0000000..31e1ebc --- /dev/null +++ b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/modules.xml b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/modules.xml new file mode 100644 index 0000000..a7beec2 --- /dev/null +++ b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/vcs.xml b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/LogManagement.class b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/LogManagement.class new file mode 100644 index 0000000..7e679e5 Binary files /dev/null and b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/LogManagement.class differ diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/LogReading.class b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/LogReading.class new file mode 100644 index 0000000..9c28044 Binary files /dev/null and b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/LogReading.class differ diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/MultiThreads.class b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/MultiThreads.class new file mode 100644 index 0000000..8c5c70f Binary files /dev/null and b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/MultiThreads.class differ diff --git a/SingletonClasses/out/production/SingletonClasses/SingletonClasses/SingletonClasses.iml b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/SingletonClasses.iml new file mode 100644 index 0000000..cd06a88 --- /dev/null +++ b/SingletonClasses/out/production/SingletonClasses/SingletonClasses/SingletonClasses.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file