Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Threads
- import java.util.*
- fun main() {
- val waitNotify = WaitNotify()
- val t1 = Thread(Runnable {
- waitNotify.thread1()
- })
- val t2 = Thread(Runnable {
- waitNotify.thread2()
- })
- t1.start()
- t2.start()
- t1.join()
- t2.join()
- }
- class WaitNotify {
- val LOCK = Any()
- fun thread1() {
- synchronized(LOCK) {
- println("Thread 1 is working")
- println("Thread 1 is left key and waiting")
- // Anahtarı bıraktım Thread2 gir ve işini hallet
- (LOCK as java.lang.Object).wait()
- println("Thread 1 finished job")
- }
- }
- fun thread2() {
- Thread.sleep(2000)
- val scanner = Scanner(System.`in`)
- synchronized(LOCK) {
- println("Thread 2 is working")
- println("Please key to continue")
- scanner.nextLine()
- // Thread 1 anahtarı işim bittikten sonra kapının üzerine koyacağım kaldığın yerden devam edebilirsin.
- (LOCK as java.lang.Object).notify()
- println("Thread 2 finished job")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement