Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. package Threads
  2.  
  3. import java.util.*
  4.  
  5. fun main() {
  6.  
  7. val waitNotify = WaitNotify()
  8.  
  9. val t1 = Thread(Runnable {
  10. waitNotify.thread1()
  11. })
  12.  
  13. val t2 = Thread(Runnable {
  14. waitNotify.thread2()
  15. })
  16.  
  17. t1.start()
  18. t2.start()
  19.  
  20. t1.join()
  21. t2.join()
  22. }
  23.  
  24. class WaitNotify {
  25. val LOCK = Any()
  26.  
  27. fun thread1() {
  28. synchronized(LOCK) {
  29. println("Thread 1 is working")
  30. println("Thread 1 is left key and waiting")
  31. // Anahtarı bıraktım Thread2 gir ve işini hallet
  32. (LOCK as java.lang.Object).wait()
  33. println("Thread 1 finished job")
  34. }
  35. }
  36.  
  37. fun thread2() {
  38. Thread.sleep(2000)
  39. val scanner = Scanner(System.`in`)
  40.  
  41. synchronized(LOCK) {
  42. println("Thread 2 is working")
  43. println("Please key to continue")
  44. scanner.nextLine()
  45. // Thread 1 anahtarı işim bittikten sonra kapının üzerine koyacağım kaldığın yerden devam edebilirsin.
  46. (LOCK as java.lang.Object).notify()
  47. println("Thread 2 finished job")
  48. }
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement