由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 一个scala future的实例
相关主题
scala 的future 和 promise有机制防止dead lock吗?俺现在开始面试房客的时候会问Java的问题
scala 问题请教 -- scala.runtime.Tuple2Zipped有intellij 高手么 问2个java技巧
Scala debug问个java8问题
scala的def或val是冗余的珍惜生命,远离 R 和 Go
scala并发gdb vs print or println
scala future之间通信有什么好办法吗?请教各位高手们PHP和Python是否和Ruby一样有Scalability的问题 (转载)
scala的future和java7的基本原理是一样的么?why functional?
Swift这么弱?从今天开始起,学C++!
相关话题的讨论汇总
话题: int话题: println话题: future话题: happened话题: val
进入Programming版参与讨论
1 (共1页)
c******o
发帖数: 1277
1
运行结果在下一贴
import scala.concurrent._
import ExecutionContext.Implicits.global
object F extends App {
val xFut: Future[Int] = future {
Thread.sleep(10000);
println("x happened");
10
}.flatMap(i => Future.successful(i + 1))
val aFut: Int => Future[(Int, Int)] = a => {
val yFut: Future[Int] = future {
println("y begin")
Thread.sleep(6000);
println("y happened " + a);
20
}
val zFut: Future[Int] = future {
println("z begin")
Thread.sleep(5000);
println("z hapenned " + a);
30
}
for {
y <- yFut
z <- zFut
} yield ((y,z))
}
val result: Future[(Int, Int, Int)] = for {
x <- xFut
(y,z) <- aFut(x)
} yield (x, y, z)
Thread.sleep(20000)
println("nThe end")
}
c******o
发帖数: 1277
2
运行结果
x happened
y begin
z begin
z hapenned 11
y happened 11
The end
m*******l
发帖数: 12782
3
yield时不时从C#抄的

【在 c******o 的大作中提到】
: 运行结果
: x happened
: y begin
: z begin
: z hapenned 11
: y happened 11
: The end

p*****2
发帖数: 21240
4
(defn -main []
(let [c1 (chan) c2 (chan) c3 (chan) c4 (chan) c5 (chan) c6 (chan)]
(go
( (println "x happened")
(>! c1 10))

(go
(let [a (inc ( (>! c2 a)
(>! c2 a)))

(go
(let [a ( (go
(println "y begin")
( (println "y happened " a)
(>! c3 20))

(go
(println "z begin")
( (println "z happened " a)
(>! c4 30))))

(go
(>! c5 (list (
(go
(>! c6 (cons ( (println ( (println "The end")))
x happened
y begin
z begin
z happened 11
y happened 11
(11 20 30)
The end
z****e
发帖数: 54598
5
我相信大多数人一眼扫过去,印象最深刻的是这个
))))))

【在 p*****2 的大作中提到】
: (defn -main []
: (let [c1 (chan) c2 (chan) c3 (chan) c4 (chan) c5 (chan) c6 (chan)]
: (go
: (: (println "x happened")
: (>! c1 10))
:
: (go
: (let [a (inc (: (>! c2 a)

p*****2
发帖数: 21240
6

难道不是go go go吗?

【在 z****e 的大作中提到】
: 我相信大多数人一眼扫过去,印象最深刻的是这个
: ))))))

1 (共1页)
进入Programming版参与讨论
相关主题
从今天开始起,学C++!scala并发
F # 语言scala future之间通信有什么好办法吗?
python很好么?scala的future和java7的基本原理是一样的么?
C# is light-years ahead of Java nowSwift这么弱?
scala 的future 和 promise有机制防止dead lock吗?俺现在开始面试房客的时候会问Java的问题
scala 问题请教 -- scala.runtime.Tuple2Zipped有intellij 高手么 问2个java技巧
Scala debug问个java8问题
scala的def或val是冗余的珍惜生命,远离 R 和 Go
相关话题的讨论汇总
话题: int话题: println话题: future话题: happened话题: val