SlideShare a Scribd company logo
Akka for Reactive
Programming - Akka入門
Masashi Kawaguchi / Jangsa Cho
この資料について
書籍“Reactive Programming with Scala and Akka”の
勉強会資料です。
第四章”Akka for Reactive Programming”を取り扱って
います。
もくじ
1. 概念のはなし
2. ActorモデルとAkkaの設計
3. おまけ
概念の復習
● concurrency v.s. parallelism
● blocking v.s. non-blocking
● deadlock, live-lock, starvation
sequence - 順次
gophers.seq.foreach(_.use(wc)) // 順番に消化
⊿
concurrency - 並行
gophers.par.tasksupport = new ForkJoinTaskSupport(new ForkJoinPool(1))
gophers.foreach(_.use(wc)) // 複数タスクを同リソース上で非同期に消化する
⊿
……。
parallelism - 並列
gophers.par.foreach(_.use(wc)) // 複数同時に消化するため、複数プロセッサが必要
⊿
⊿
concurrency + parallelism - 並行並列
並行処理を並列に実施
⊿
⊿
……。
……。
blocking / synchronous
val result1 = gopher1.use(wc)
val result2 = gopher2.use(wc)
flushAll(List(result1, result2)) まだ? まだ
timeout expception!
non-blocking / asynchronous
Future[Unit] { gopher1.use(wc) }
Future[Unit] { gopher2.use(wc) }
Future[Unit] { gopher3.use(wc) }
...
自由だ!
少しずつ僕が回
収しますよ。
deadlock & live-lock / starvation
deadlock : 双方が双方の状態変化待ち状態
live-lock : 双方の状態変化が、双方の次タスク消化を妨げる状態
starvation :一部タスクが消化されないままになる状態(優先順位などが原因)
どいてあけて
timeout expception!
race condition
並行並列処理が行われて、演算結果セットの順序が保証されない状態
Akka公式が挙げている例:
UDPパケットがP1 -> P2の順で送信されたにも関わらず、P2 -> P1の順に受信された。お
まけに送信データには順番が書いてないので、本来意図された順序は復元不可能。
non-blocking guarantees
保証されるノンブロッキングのレベル
1. wait-freedom
○ 完全にブロッキングを起こさない
○ 一定時間内にすべてのステップが消化される
2. lock-freedom
○ wait-freedomほど厳格ではなく、一部の処理中にブロッキングが発生しうる
○ ただしデッドロック級の致命的なロックを回避できることは保証される
3. obstruction-freedom
○ さらにゆるゆる
○ メインとブロッキングする処理を分離して実行 ……一定地点まではノンブロッキング
○ 例:楽観的ロック
ActorモデルとAkkaの設計
Actorモデル
● すべての概念はActorである
● 各Actorは独立して並行処理を行うことができる
● Actor同士はメールメッセージを送り合って非同期コミュニケーションを行う
● メッセージは各Actorのメールアドレスを基に交換される
○ メールアドレスを持つ Actorのみとコミュニケーションを取ることができる
● メッセージをトリガーにしてActorは振る舞いを始める
Actorの内部要素
1. Processing
○ 処理はActor内部で完結する
2. Storage
○ Actorは文脈/contextを保持する
3. Communication
○ 他のActorと双方向でメッセージ交換する
○ メッセージを受け取ったときの反応
i. 新たなActorを作成する
ii. 他のActorにメッセージを投げる
iii. 文脈に応じて振る舞いを変える
● 例えばAkkaでは、receiveが指すPartial Functionをcontext.becomeで切り替える
Akkaの設計思想
● Let it crash
● Hierarchical Actors
Let it crash
● Akkaの設計思想『Actorは壊れるもの』
● 生き死にのサイクルを管理するため、ActorにはpostStop、preRestartなどといった
イベント関数が標準で実装されている(参考:http://goo.gl/7pNDFe)
Hierarchical Actors
● すべてのActorはHierarchicallyに管理される
● ActorがActorが産むことで、Hierarchy構造が構築される
○ 親Actorが子Actorを生み、子Actorは孫Actorを生む……
● ActorがHierarchyのどこに位置するかを表現するためActor Pathという概念が存
在する
○ akka://${Actor System名}/user/${親Actor}/${子Actor}/${孫Actor}/...
Akkaを構成する主な概念
1. Actor Systems
○ Hierarchyの頂点の君臨する3体のガーディアン
2. Actors
○ 実処理およびメッセージ交換を行う人々。 user guardianにより管理される。
○ Akkaエンジンによりスレッドが割り当てられる(複数 Actorで1スレッド共有がデフォ)
○ よってcontextを持つものの、その内容が他 Actorと共有されることは絶対にない。そのために
ActorRefというView専用オブジェクトを立てる。(= actorOf[...]の返り値)
3. Dispatcher
○ メッセージの仲介者。送信元 Actorから受け取ったメッセージを、宛先 Actorのメールボックスの
キューに挿す役割を担う。
4. Mailboxes
○ Actorsから送られてきたメッセージ処理を非同期に処理するための、いわばバッファ。
Actor Systems
Actorを管理・生成・保有する土壌で、以下の3つから構成される。
A. Root Guardian
a. User Guardian
b. System Guardian
※厳密にはDead Letters、Temp、RemoteなどがRoot Guardianにぶら下がっている
が、実Actorに対して働きかける類のものではないので割愛
Root Guardian
● Hierarchyの頂点、すべてのGuardian、ActorのSupervisor
○ Root Guardianがterminateしたとき、Actorシステム全体がterminateされる
● すべての子Actorをterminateする権能を持つ
○ SupervisorStrategy.stoppingStrategy
User Guardian
● Akka System内で作成されたすべてのActorのSupervisor
system.actorOf(Props[${Actorクラス}], ${Actor名(文字列)})
● User Guardianが消去された場合、すべての子Actorが消去される
System Guardian
● User Guardian監視中にActorの停止を見守る(deathwatch)
class Watcher extends Actor {
def receive = { case Terminated(ceasedActorRef) => {...} } }
● 特定Actorの監視は能動的にオン/オフを切り替える
オン:context.watch(${Actorオブジェクト})
オフ:context.unwatch()
Message Boxes
親Actorが好き勝ってなタイミングで自由に用を足す大地=メールボックスだ
メッセージボックスにはサイズ、データ構造などのプロパティを設定できる。
mailbox-capacity = 1000
mailbox-type = "akka.dispatch.BoundedMailbox"
...
順次、僕のペース
で掃除します
メッセージ
ボックス
温かいメッセージ
親Actor
子Actor
自由だ!!
Actorの監視
● 子Actorの監視役(=親Actor)は、子ActorがExceptionを投げたときの振る舞いを
決めることができる
監視の戦略(Supervision Strategy)
● One For One Strategy
○ ある子ActorがExceptionを吐いても、親Actor以下すべてを止めずに続行する
● AllForOneStrategy
○ ある子ActorがExceptionを吐いたとき、親Actor以下すべての処理を止める
override val supervisorStrategy = AllForOneStrategy() {
case ea: ExceptionA => Stop
case eb: ExceptionB => Restart
}
おまけ:Akka Typed
● Akkaは型がゆるゆる
Actor.receiveの実装
trait Actor {
...
def receive: Actor.Receive
}
Actor.Receive
type Receive = PartialFunction[Any, Unit]
もっと型安全に書きたい
TypedAkka、参上!
※2016年06月現在でExperimental
Akka TypedはActor間のプロトコルを定義する
final case class Greet(whom: String, replyTo: ActorRef[Greeted])
final case class Greeted(whom: String)
val future: Future[Greeted] = system ? (Greet("world", _))
PartialFunctionが消えた!
object HelloWorld {
final case class Greet(whom: String, replyTo: ActorRef[Greeted])
final case class Greeted(whom: String)
val greeter = Static[Greet] { msg =>
println(s"Hello ${msg.whom}!")
msg.replyTo ! Greeted(msg.whom)
}
}
// コード出典:Akka公式@http://goo.gl/VNf8oz
Go Gopher - designed by Renee French
おわり

More Related Content

What's hot

並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
 
Akkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka docAkkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka doc
賢太郎 前多
 
【LT】akka receive とScala Javaの違い
【LT】akka receive とScala Javaの違い 【LT】akka receive とScala Javaの違い
【LT】akka receive とScala Javaの違い
賢太郎 前多
 
Developing an Akka Edge6
Developing an Akka Edge6Developing an Akka Edge6
Developing an Akka Edge6
saaaaaaki
 
Servlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksServlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ks
Kazuhiro Sera
 
Developing an Akka Edge1-3
Developing an Akka Edge1-3Developing an Akka Edge1-3
Developing an Akka Edge1-3
saaaaaaki
 
Developing an Akka Edge4-5
Developing an Akka Edge4-5Developing an Akka Edge4-5
Developing an Akka Edge4-5
saaaaaaki
 
Real world android akka
Real world android akkaReal world android akka
Real world android akka
Taisuke Oe
 
Akka Clusterの耐障害設計
Akka Clusterの耐障害設計Akka Clusterの耐障害設計
Akka Clusterの耐障害設計
TanUkkii
 
Scala警察のすすめ
Scala警察のすすめScala警察のすすめ
Scala警察のすすめ
takezoe
 
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on JavaQuasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on JavaTaku Miyakawa
 
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
Eugene Yokota
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
 
とりあえず使えるSBT
とりあえず使えるSBTとりあえず使えるSBT
とりあえず使えるSBT
Kiyotaka Kunihira
 
Lambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみたLambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみた
KazukiNabasama
 
Java使いにとっての関数
Java使いにとっての関数Java使いにとっての関数
Java使いにとっての関数amkt922
 
ScalaにまつわるNewsな話
ScalaにまつわるNewsな話ScalaにまつわるNewsな話
ScalaにまつわるNewsな話
Yosuke Mizutani
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
 
Sbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞSbtのマルチプロジェクトはいいぞ
Sbtのマルチプロジェクトはいいぞ
Yoshitaka Fujii
 
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.jsScala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
takezoe
 

What's hot (20)

並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
 
Akkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka docAkkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka doc
 
【LT】akka receive とScala Javaの違い
【LT】akka receive とScala Javaの違い 【LT】akka receive とScala Javaの違い
【LT】akka receive とScala Javaの違い
 
Developing an Akka Edge6
Developing an Akka Edge6Developing an Akka Edge6
Developing an Akka Edge6
 
Servlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksServlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ks
 
Developing an Akka Edge1-3
Developing an Akka Edge1-3Developing an Akka Edge1-3
Developing an Akka Edge1-3
 
Developing an Akka Edge4-5
Developing an Akka Edge4-5Developing an Akka Edge4-5
Developing an Akka Edge4-5
 
Real world android akka
Real world android akkaReal world android akka
Real world android akka
 
Akka Clusterの耐障害設計
Akka Clusterの耐障害設計Akka Clusterの耐障害設計
Akka Clusterの耐障害設計
 
Scala警察のすすめ
Scala警察のすすめScala警察のすすめ
Scala警察のすすめ
 
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on JavaQuasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on Java
 
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
 
とりあえず使えるSBT
とりあえず使えるSBTとりあえず使えるSBT
とりあえず使えるSBT
 
Lambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみたLambda Layerの権限制御を試してみた
Lambda Layerの権限制御を試してみた
 
Java使いにとっての関数
Java使いにとっての関数Java使いにとっての関数
Java使いにとっての関数
 
ScalaにまつわるNewsな話
ScalaにまつわるNewsな話ScalaにまつわるNewsな話
ScalaにまつわるNewsな話
 
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarconSeasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
 
Sbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞSbtのマルチプロジェクトはいいぞ
Sbtのマルチプロジェクトはいいぞ
 
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.jsScala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
 

Viewers also liked

Akka Unit Testing
Akka Unit TestingAkka Unit Testing
Akka Unit Testing
Masashi (Jangsa) Kawaguchi
 
Scala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaScala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
 
Scala@SmartNews_20150221
Scala@SmartNews_20150221Scala@SmartNews_20150221
Scala@SmartNews_20150221
Shigekazu Takei
 
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話
Keiji Muraishi
 
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscalaビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
 
エンタープライズ・クラウドと 並列・分散・非同期処理
エンタープライズ・クラウドと 並列・分散・非同期処理エンタープライズ・クラウドと 並列・分散・非同期処理
エンタープライズ・クラウドと 並列・分散・非同期処理
maruyama097
 
未来につながる言語
未来につながる言語未来につながる言語
未来につながる言語
yukihiro_matz
 
Concurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STM
Concurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STMConcurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STM
Concurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STM
Mario Fusco
 
Performance indicators for different levels of management
Performance indicators for different levels of managementPerformance indicators for different levels of management
Performance indicators for different levels of management
sree431
 
Performance indicators for different levels of management
Performance indicators for different levels of managementPerformance indicators for different levels of management
Performance indicators for different levels of management
sree431
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPI
Jan Vyhnánek
 
Collaborative Composition Histories
Collaborative Composition HistoriesCollaborative Composition Histories
Collaborative Composition Histories
mdbabin
 
Comp 220 lab 3
Comp 220 lab 3Comp 220 lab 3
Comp 220 lab 3
HomeWork-Fox
 
kelly marulanda
kelly marulandakelly marulanda
kelly marulanda
Juɑn Rɑmirez
 
Coderetreat introduction
Coderetreat introductionCoderetreat introduction
Coderetreat introduction
Vaidas Pilkauskas
 
Simulacro pruebas saber 5ªto
Simulacro pruebas saber 5ªtoSimulacro pruebas saber 5ªto
Simulacro pruebas saber 5ªto
Juɑn Rɑmirez
 
Time management
Time managementTime management
Time management
Andrea Olmus Tisnés
 
Wallopball
WallopballWallopball
Wallopball
ethelkatrina
 
Beat the Red Eye - 100+ IDEAS!
Beat the Red Eye - 100+ IDEAS!Beat the Red Eye - 100+ IDEAS!
Beat the Red Eye - 100+ IDEAS!
ethelkatrina
 

Viewers also liked (20)

Akka Unit Testing
Akka Unit TestingAkka Unit Testing
Akka Unit Testing
 
Scala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaScala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscala
 
Scala@SmartNews_20150221
Scala@SmartNews_20150221Scala@SmartNews_20150221
Scala@SmartNews_20150221
 
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話
 
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscalaビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
 
エンタープライズ・クラウドと 並列・分散・非同期処理
エンタープライズ・クラウドと 並列・分散・非同期処理エンタープライズ・クラウドと 並列・分散・非同期処理
エンタープライズ・クラウドと 並列・分散・非同期処理
 
未来につながる言語
未来につながる言語未来につながる言語
未来につながる言語
 
Concurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STM
Concurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STMConcurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STM
Concurrency, Scalability & Fault-tolerance 2.0 with Akka Actors & STM
 
Performance indicators for different levels of management
Performance indicators for different levels of managementPerformance indicators for different levels of management
Performance indicators for different levels of management
 
Performance indicators for different levels of management
Performance indicators for different levels of managementPerformance indicators for different levels of management
Performance indicators for different levels of management
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPI
 
Collaborative Composition Histories
Collaborative Composition HistoriesCollaborative Composition Histories
Collaborative Composition Histories
 
Comp 220 lab 3
Comp 220 lab 3Comp 220 lab 3
Comp 220 lab 3
 
kelly marulanda
kelly marulandakelly marulanda
kelly marulanda
 
Coderetreat introduction
Coderetreat introductionCoderetreat introduction
Coderetreat introduction
 
Simulacro pruebas saber 5ªto
Simulacro pruebas saber 5ªtoSimulacro pruebas saber 5ªto
Simulacro pruebas saber 5ªto
 
Time management
Time managementTime management
Time management
 
Wallopball
WallopballWallopball
Wallopball
 
Beat the Red Eye - 100+ IDEAS!
Beat the Red Eye - 100+ IDEAS!Beat the Red Eye - 100+ IDEAS!
Beat the Red Eye - 100+ IDEAS!
 
norhane ramdani
norhane ramdaninorhane ramdani
norhane ramdani
 

Similar to Akka入門

Akka stream
Akka streamAkka stream
Akka stream
Masaki Toyoshima
 
Elixir macro-in-action-1
Elixir macro-in-action-1Elixir macro-in-action-1
Elixir macro-in-action-1
k1complete
 
Elixirでslackのbotを作った話
Elixirでslackのbotを作った話Elixirでslackのbotを作った話
Elixirでslackのbotを作った話
keisunagawa
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」yoshiaki iwanaga
 
197x 20090704 Scalaで並行プログラミング
197x 20090704 Scalaで並行プログラミング197x 20090704 Scalaで並行プログラミング
197x 20090704 Scalaで並行プログラミングNet Penguin
 
Cleaner Scala Stack (会社ブログ用)
Cleaner Scala Stack (会社ブログ用)Cleaner Scala Stack (会社ブログ用)
Cleaner Scala Stack (会社ブログ用)osamu kimura
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
 
Nginx
NginxNginx
Sharing Deep Dive
Sharing Deep DiveSharing Deep Dive
Sharing Deep Dive
Takaaki Suzuki
 
Erlangやってみた
ErlangやってみたErlangやってみた
Erlangやってみた
ina job
 
今日からはじめるGPars
今日からはじめるGPars今日からはじめるGPars
今日からはじめるGPars
fumokmm
 
Solr 4.0 の主な機能
Solr 4.0 の主な機能Solr 4.0 の主な機能
Solr 4.0 の主な機能Shinichiro Abe
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
 
xv6から始めるSPIN入門
xv6から始めるSPIN入門xv6から始めるSPIN入門
xv6から始めるSPIN入門
Ryousei Takano
 

Similar to Akka入門 (16)

ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
Akka stream
Akka streamAkka stream
Akka stream
 
Elixir macro-in-action-1
Elixir macro-in-action-1Elixir macro-in-action-1
Elixir macro-in-action-1
 
Elixirでslackのbotを作った話
Elixirでslackのbotを作った話Elixirでslackのbotを作った話
Elixirでslackのbotを作った話
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
 
197x 20090704 Scalaで並行プログラミング
197x 20090704 Scalaで並行プログラミング197x 20090704 Scalaで並行プログラミング
197x 20090704 Scalaで並行プログラミング
 
Cleaner Scala Stack (会社ブログ用)
Cleaner Scala Stack (会社ブログ用)Cleaner Scala Stack (会社ブログ用)
Cleaner Scala Stack (会社ブログ用)
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
Nginx
NginxNginx
Nginx
 
MlnagoyaRx
MlnagoyaRxMlnagoyaRx
MlnagoyaRx
 
Sharing Deep Dive
Sharing Deep DiveSharing Deep Dive
Sharing Deep Dive
 
Erlangやってみた
ErlangやってみたErlangやってみた
Erlangやってみた
 
今日からはじめるGPars
今日からはじめるGPars今日からはじめるGPars
今日からはじめるGPars
 
Solr 4.0 の主な機能
Solr 4.0 の主な機能Solr 4.0 の主な機能
Solr 4.0 の主な機能
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
 
xv6から始めるSPIN入門
xv6から始めるSPIN入門xv6から始めるSPIN入門
xv6から始めるSPIN入門
 

Recently uploaded

ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 

Recently uploaded (7)

ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 

Akka入門