diff --git a/.idea/modules.xml b/.idea/modules.xml
index 7ac30c7..c08c41f 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,8 +2,7 @@
-
+
-
-
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/sos-game/org/kodluyoruz/Main.class b/out/production/sos-game/org/kodluyoruz/Main.class
new file mode 100644
index 0000000..e6001cc
Binary files /dev/null and b/out/production/sos-game/org/kodluyoruz/Main.class differ
diff --git a/out/production/sos-game/org/kodluyoruz/MyThread.class b/out/production/sos-game/org/kodluyoruz/MyThread.class
new file mode 100644
index 0000000..132b434
Binary files /dev/null and b/out/production/sos-game/org/kodluyoruz/MyThread.class differ
diff --git a/out/production/sos-game/org/kodluyoruz/Node.class b/out/production/sos-game/org/kodluyoruz/Node.class
new file mode 100644
index 0000000..a0af132
Binary files /dev/null and b/out/production/sos-game/org/kodluyoruz/Node.class differ
diff --git a/out/production/sos-game/org/kodluyoruz/Queue.class b/out/production/sos-game/org/kodluyoruz/Queue.class
new file mode 100644
index 0000000..cff6c7b
Binary files /dev/null and b/out/production/sos-game/org/kodluyoruz/Queue.class differ
diff --git a/out/production/sos-game/org/kodluyoruz/QueueProcesses.class b/out/production/sos-game/org/kodluyoruz/QueueProcesses.class
new file mode 100644
index 0000000..ef146cd
Binary files /dev/null and b/out/production/sos-game/org/kodluyoruz/QueueProcesses.class differ
diff --git a/src/org/kodluyoruz/Main.java b/src/org/kodluyoruz/Main.java
index aa7b80d..b1b313a 100644
--- a/src/org/kodluyoruz/Main.java
+++ b/src/org/kodluyoruz/Main.java
@@ -2,7 +2,37 @@
public class Main {
+
public static void main(String[] args) {
- // write your code here
+ QueueProcesses eleman= new QueueProcesses<>();
+ eleman.add(new String("Merhaba"));
+ eleman.add(new String("busra"));
+ eleman.add(new String("java"));
+ try{
+ System.out.println(eleman.peek());
+ System.out.println(eleman.poll());
+ System.out.println(eleman.poll());
+ System.out.println(eleman.poll());
+ System.out.println(eleman.peek());
+ }
+ catch (NullPointerException e){
+ System.out.println(e);
+ }
+
+
+ MyThread thread1 = new MyThread(eleman);
+ MyThread thread2 = new MyThread(eleman);
+
+ thread1.start();
+ thread2.start();
+
+ try {
+ thread1.join();
+ thread2.join();
+ } catch (InterruptedException e) {
+ System.out.println("Main thread is interrupted");
+ }
+
+ System.out.println("Main thread is finishing");
}
}
diff --git a/src/org/kodluyoruz/MyThread.java b/src/org/kodluyoruz/MyThread.java
new file mode 100644
index 0000000..16ce12f
--- /dev/null
+++ b/src/org/kodluyoruz/MyThread.java
@@ -0,0 +1,19 @@
+package org.kodluyoruz;
+
+public class MyThread extends Thread{
+ T deger;
+ static QueueProcesses op = new QueueProcesses();
+
+ public MyThread(T deger) {
+ super();
+ this.deger = deger;
+ }
+
+ public void run() {
+ System.out.println(this.getName() + " is starting");
+ op.add(this.deger);
+ op.peek();
+ op.poll();
+ System.out.println(this.getName() + " is finishing");
+ }
+}
diff --git a/src/org/kodluyoruz/Node.java b/src/org/kodluyoruz/Node.java
new file mode 100644
index 0000000..3f17159
--- /dev/null
+++ b/src/org/kodluyoruz/Node.java
@@ -0,0 +1,31 @@
+package org.kodluyoruz;
+
+public class Node {
+ private T deger;
+ private Node next;
+
+ public Node( T deger){
+
+ this.deger=deger;
+ }
+ public Node(T deger, Node next){
+ this.deger= deger;
+ this.next= next;
+ }
+
+ public T getDeger() {
+ return deger;
+ }
+
+ public void setDeger(T deger) {
+ this.deger = deger;
+ }
+
+ public Node getNext() {
+ return next;
+ }
+
+ public void setNext(Node next) {
+ this.next = next;
+ }
+}
diff --git a/src/org/kodluyoruz/Queue.java b/src/org/kodluyoruz/Queue.java
new file mode 100644
index 0000000..4c11271
--- /dev/null
+++ b/src/org/kodluyoruz/Queue.java
@@ -0,0 +1,8 @@
+package org.kodluyoruz;
+
+public interface Queue {
+ void add(T deger);
+ T peek();
+ T poll();
+
+}
diff --git a/src/org/kodluyoruz/QueueProcesses.java b/src/org/kodluyoruz/QueueProcesses.java
new file mode 100644
index 0000000..cdfca83
--- /dev/null
+++ b/src/org/kodluyoruz/QueueProcesses.java
@@ -0,0 +1,48 @@
+package org.kodluyoruz;
+
+public class QueueProcesses implements Queue{
+ private Node ilk;
+ private Nodeson;
+
+ @Override
+ synchronized public void add(T deger) {
+ Node node = new Node(deger);
+ if(ilk==null) {
+ ilk = node;
+ son = node;
+
+ }else{
+ son.setNext(node);
+ son=node;
+
+ }
+
+ }
+
+ @Override
+ synchronized public T peek() {
+ if(ilk==null) {
+ throw new NullPointerException("Queue Bos");
+ }
+ else
+ return ilk.getDeger();
+
+
+ }
+
+ @Override
+ synchronized public T poll() {
+
+ if(ilk==null){
+ throw new NullPointerException("Queue Bos");
+ }
+ else {
+ T deger= null;
+ Node node=ilk;
+ ilk= node.getNext();
+ deger=node.getDeger();
+ return deger;
+ }
+
+ }
+}