// TestMultipleThreads.kt import java.lang.Thread.sleep import kotlin.concurrent.thread class WorkMan constructor(val name: String) { // class名 を、換えたのは、同じプロジェクト内なので、名前が被るから. fun carry25boxes() { var counter: Int = 0 while (true) { ++counter println("${this.name}さん、${counter}個、運びました。") sleep(300) if (counter == 25) { println("ノルマ達成!") break } } } } val wm1: WorkMan = WorkMan("一郎") val wm2: WorkMan = WorkMan("二郎") val wm3: WorkMan = WorkMan("三郎") val wm4: WorkMan = WorkMan("四郎") fun main() { thread { wm1.carry25boxes() } thread { wm2.carry25boxes() } thread { wm3.carry25boxes() } thread { wm4.carry25boxes() } } /* すべて実行するのにかかった時間: 約10秒 実行結果: 一郎さん、1個、運びました。 二郎さん、1個、運びました。 三郎さん、1個、運びました。 四郎さん、1個、運びました。 三郎さん、2個、運びました。 一郎さん、2個、運びました。 二郎さん、2個、運びました。 四郎さん、2個、運びました。 一郎さん、3個、運びました。 二郎さん、3個、運びました。 三郎さん、3個、運びました。 四郎さん、3個、運びました。 三郎さん、4個、運びました。 一郎さん、4個、運びました。 二郎さん、4個、運びました。 四郎さん、4個、運びました。 一郎さん、5個、運びました。 三郎さん、5個、運びました。 二郎さん、5個、運びました。 四郎さん、5個、運びました。 二郎さん、6個、運びました。 一郎さん、6個、運びました。 三郎さん、6個、運びました。 四郎さん、6個、運びました。 三郎さん、7個、運びました。 一郎さん、7個、運びました。 二郎さん、7個、運びました。 四郎さん、7個、運びました。 一郎さん、8個、運びました。 三郎さん、8個、運びました。 二郎さん、8個、運びました。 四郎さん、8個、運びました。 一郎さん、9個、運びました。 三郎さん、9個、運びました。 二郎さん、9個、運びました。 四郎さん、9個、運びました。 二郎さん、10個、運びました。 一郎さん、10個、運びました。 三郎さん、10個、運びました。 四郎さん、10個、運びました。 二郎さん、11個、運びました。 一郎さん、11個、運びました。 三郎さん、11個、運びました。 四郎さん、11個、運びました。 一郎さん、12個、運びました。 三郎さん、12個、運びました。 二郎さん、12個、運びました。 四郎さん、12個、運びました。 三郎さん、13個、運びました。 一郎さん、13個、運びました。 二郎さん、13個、運びました。 四郎さん、13個、運びました。 三郎さん、14個、運びました。 一郎さん、14個、運びました。 二郎さん、14個、運びました。 四郎さん、14個、運びました。 三郎さん、15個、運びました。 一郎さん、15個、運びました。 二郎さん、15個、運びました。 四郎さん、15個、運びました。 三郎さん、16個、運びました。 一郎さん、16個、運びました。 二郎さん、16個、運びました。 四郎さん、16個、運びました。 三郎さん、17個、運びました。 二郎さん、17個、運びました。 一郎さん、17個、運びました。 四郎さん、17個、運びました。 三郎さん、18個、運びました。 一郎さん、18個、運びました。 二郎さん、18個、運びました。 四郎さん、18個、運びました。 二郎さん、19個、運びました。 三郎さん、19個、運びました。 一郎さん、19個、運びました。 四郎さん、19個、運びました。 一郎さん、20個、運びました。 三郎さん、20個、運びました。 二郎さん、20個、運びました。 四郎さん、20個、運びました。 二郎さん、21個、運びました。 三郎さん、21個、運びました。 一郎さん、21個、運びました。 四郎さん、21個、運びました。 三郎さん、22個、運びました。 二郎さん、22個、運びました。 一郎さん、22個、運びました。 四郎さん、22個、運びました。 三郎さん、23個、運びました。 二郎さん、23個、運びました。 一郎さん、23個、運びました。 四郎さん、23個、運びました。 一郎さん、24個、運びました。 三郎さん、24個、運びました。 二郎さん、24個、運びました。 四郎さん、24個、運びました。 二郎さん、25個、運びました。 一郎さん、25個、運びました。 三郎さん、25個、運びました。 四郎さん、25個、運びました。 ノルマ達成! ノルマ達成! ノルマ達成! ノルマ達成! Process finished with exit code 0 */