object ProdConSample {
class Producer(drop: Drop) extends Runnable {
val importantInfo: Array[String] = Array(
"Mares eat oats",
"Does eat oats",
"Little lambs eat ivy",
"A kid will eat ivy too");
override def run(): Unit =
{
importantInfo.foreach((msg) => drop.put(msg))
drop.put("DONE")
}
}
class Consumer(drop: Drop) extends Runnable {
override def run(): Unit =
{
var message = drop.take()
while (message != "DONE") {
System.out.format("MESSAGE RECEIVED: %s%n", message)
message = drop.take()
}
}
}
class Drop {
var message: String = ""
var empty: Boolean = true
var lock: AnyRef = new Object()
def put(x: String): Unit =
lock.synchronized {
// Wait until message has been retrieved
await(empty == true)
// Toggle status
empty = false
// Store message
message = x
// Notify consumer that status has changed
lock.notifyAll()
}
def take(): String =
lock.synchronized {
// Wait until message is available.
await(empty == false)
// Toggle status
empty = true
// Notify producer that staus has changed
lock.notifyAll()
// Return the message
message
}
private def await(cond: => Boolean) =
while (!cond) { lock.wait() }
}
def main(args: Array[String]): Unit =
{
// Create Drop
val drop = new Drop();
// Spawn Producer
new Thread(new Producer(drop)).start();
// Spawn Consumer
new Thread(new Consumer(drop)).start();
}
}
分享到:
相关推荐
kafka生产者消费者Demo 修改zookeeper.connect 配置即可使用
scala:Scala和设计模式 疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/Java/Article42687.html 在当前软件Software设计中最流行要算GoF这本书中提出各种设计模式很多人认为设计模式对于语言(特 别是c/Java...
Scala设计模式,Scala高阶参考书。
响应式架构 消息模式Actor实现与Scala.Akka应用集成 响应式架构 消息模式Actor实现与Scala.Akka应用集成
scala正则表达式在模式匹配中的应用:提取模式的分组值,通过代码理解正则表达式与模式匹配的原理。
消息模式Actor实现与Scala、Akka应用集成
scala 设计模式,详细讲述scala设计模式
scala for循环中的模式匹配:1)变量模式匹配2)常量模式匹配3)变量绑定模式匹配4)类型模式匹配5)构造函数模式匹配6)序列模式匹配
Scala 初学指南 这本书是什么 本书是 The Neophyte's Guide to Scala 的中文翻译。 The Neophyte's Guide to Scala 是 Daniel Westheide 写的一系列有关 Scala 的文章。 ------------------------------------------...
scala-2.12.3 scala-2.12.3 scala-2.12.3 scala-2.12.3
scala连接redis哨兵模式 demo 使用scala的redis库(csdn)————程序
scala与spark文档合集,有好多本,包括快学Scala,scala与spark文档合集
本资源收集了scala与大数据spark的基础的学习笔记,有兴趣的同学可以下载学习
Scala模式匹配.md
kafka-消费者 简单的 Scala Kafka 消费者 如何构建
Scala 的基于 Akka Actors 的 Kafka 消费者/生产者 支持卡夫卡 0.8.2.1 概念 Kafka 的消费者本质上是阻塞的,其想法是让消费者在自己的线程池中运行,并将消息委托给在自己的线程池中运行的 worker-actor,同时实现...
响应式架构++消息模式Actor实现与Scala.Akka应用集成+,沃恩·弗农+
响应式架构 消息模式Actor实现与Scala.Akka应用集成 高清扫描版