Synchronous concurrency: Difference between revisions
Added Kotlin
No edit summary |
(Added Kotlin) |
||
Line 1,337:
}
</lang>
=={{header|Kotlin}}==
<lang scala>// version 1.1.51
import java.util.concurrent.SynchronousQueue
import kotlin.concurrent.thread
import java.io.File
val queue = SynchronousQueue<String>()
const val EOT = "\u0004" // end of transmission
fun main(args: Array<String>) {
thread {
var count = 0
while (true) {
val line = queue.take()
if (line == EOT) {
queue.put(count.toString())
break
}
println(line)
count++
}
}
File("input.txt").forEachLine { line -> queue.put(line) }
queue.put(EOT)
val count = queue.take().toInt()
println("\nNumber of lines printed = $count")
}</lang>
Content of input.txt:
<pre>
line1
line2
line3
line4
</pre>
{{out}}
<pre>
line1
line2
line3
line4
Number of lines printed = 4
</pre>
=={{header|Logtalk}}==
|