diff options
Diffstat (limited to 'Year_3/TSDWL/ex_20191218/Thread1.java')
-rw-r--r-- | Year_3/TSDWL/ex_20191218/Thread1.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Year_3/TSDWL/ex_20191218/Thread1.java b/Year_3/TSDWL/ex_20191218/Thread1.java new file mode 100644 index 0000000..55edaba --- /dev/null +++ b/Year_3/TSDWL/ex_20191218/Thread1.java @@ -0,0 +1,42 @@ +public class Thread1 extends Thread { + Shared mem; + public Thread1(Shared mem) { + super(); + this.mem = mem; + } + + public void run() { + int m; + + while (true) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + break; + } + m = (int) (Math.random() * (10-0+1)+0); + + synchronized(mem) { + System.out.printf("Thread 1, x = %d, m = %d\n", mem.get(), m); + if (mem.get() == -1) { + break; + } else if(mem.get() == m) { + System.out.println("RISPOSTA CORRETTA"); + mem.set(-1); + } else if(Math.abs(m-mem.get()) > 5) { + try { + System.out.println("risposta MOLTO sbagliata"); + System.out.println("Thread 1 going to sleep"); + mem.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + break; + } + } else { + System.out.println("risposta sbagliata"); + } + } + } + } +} |