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; + } + + } +}