kotlinのメモです。
1496 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。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。
https://www.osumoi-stdio.com/pyarticle/