kotlinのメモです。
1869 views
スレッドでロックして、ロックがかかっている間、待つ場合のサンプルプログラム。
withLockがミソ。
import java.util.concurrent.locks.ReentrantLock
import kotlin.concurrent.withLock
var lock = ReentrantLock()
fun subfunc() {
var threadId = Thread.currentThread().id
//ロックして処理開始
lock.withLock{
println("thread id = ${threadId} start")
var count = 0
for(i in 0 until 10) {
println("thread id = ${threadId} count=${count}")
count++
Thread.sleep(1*1000)
}
}
}
fun main(args:Array<String>) {
//スレッドを二つ作る
var thread1 = Thread(::subfunc)
var thread2 = Thread(::subfunc)
//スレッドを開始する
thread1.start()
//Thread.sleep(1*1000)
thread2.start()
//スレッドの終了を待つ
thread1.join()
thread2.join()
}
Page 33 of 36.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/