Submit Search
コルーチンの実装について
3 likes
3,353 views
T
Taku Miyakawa
コルーチンの実装、特にコンテキストスイッチをどう実現するのか?について解説します。
Technology
Read more
1 of 13
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
More Related Content
What's hot
(11)
PDF
Kotlinあるある言いたい
yy yank
PPTX
開発チームにKotlinを導入した話
Hiroshi Kikuchi
PPTX
Spring boot劇的ビフォーアフター
orekyuu
PDF
Humble Object Patternな話
Hiroto Imoto
PDF
なるべくコードを書かないAndroid開発
Hiroshi Kikuchi
PDF
Middleman Guides & How to Learn
Yuya Matsushima
PDF
KotlinつかってQiitaクライアント作った時の話
shinnosuke kugimiya
PDF
「やっぱり怖かったPerl」In Kichijoji.pm #2
民人 青山
PDF
普段C#を使っている僕から見たKotlin
Ryota Murohoshi
KEY
どう見る?Class Reference
Tadahisa Motooka
PDF
Androidの世界を離れて異文化留学してみた
Hiroshi Kikuchi
Kotlinあるある言いたい
yy yank
開発チームにKotlinを導入した話
Hiroshi Kikuchi
Spring boot劇的ビフォーアフター
orekyuu
Humble Object Patternな話
Hiroto Imoto
なるべくコードを書かないAndroid開発
Hiroshi Kikuchi
Middleman Guides & How to Learn
Yuya Matsushima
KotlinつかってQiitaクライアント作った時の話
shinnosuke kugimiya
「やっぱり怖かったPerl」In Kichijoji.pm #2
民人 青山
普段C#を使っている僕から見たKotlin
Ryota Murohoshi
どう見る?Class Reference
Tadahisa Motooka
Androidの世界を離れて異文化留学してみた
Hiroshi Kikuchi
Viewers also liked
(16)
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
PDF
コルーチンでC++でも楽々ゲーム作成!
amusementcreators
PDF
擬似乱数生成器の評価
Taku Miyakawa
PDF
Kink の宣伝
Taku Miyakawa
PDF
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
PDF
Matrix Multiplication in Strassen Algorithm
Taku Miyakawa
PDF
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
PDF
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
PDF
Hadoop jobbuilder
Taku Miyakawa
PDF
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
PDF
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
PDF
Javaのログ出力: 道具と考え方
Taku Miyakawa
PDF
Prepare for Java 9 #jjug
Yuji Kubota
PDF
楽して JVM を学びたい #jjug
Yuji Kubota
PDF
Graph Algorithms Part 1
Taku Miyakawa
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
コルーチンでC++でも楽々ゲーム作成!
amusementcreators
擬似乱数生成器の評価
Taku Miyakawa
Kink の宣伝
Taku Miyakawa
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
Matrix Multiplication in Strassen Algorithm
Taku Miyakawa
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
Hadoop jobbuilder
Taku Miyakawa
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
Javaのログ出力: 道具と考え方
Taku Miyakawa
Prepare for Java 9 #jjug
Yuji Kubota
楽して JVM を学びたい #jjug
Yuji Kubota
Graph Algorithms Part 1
Taku Miyakawa
Ad
More from Taku Miyakawa
(6)
PDF
ラムダと invokedynamic の蜜月
Taku Miyakawa
PDF
Java Quine Golf
Taku Miyakawa
PDF
Processing LTSV by Apache Pig
Taku Miyakawa
PDF
Java 7 invokedynamic の概要
Taku Miyakawa
PDF
Java オブジェクトの内部構造
Taku Miyakawa
PDF
Kink: developing a programming language on the JVM
Taku Miyakawa
ラムダと invokedynamic の蜜月
Taku Miyakawa
Java Quine Golf
Taku Miyakawa
Processing LTSV by Apache Pig
Taku Miyakawa
Java 7 invokedynamic の概要
Taku Miyakawa
Java オブジェクトの内部構造
Taku Miyakawa
Kink: developing a programming language on the JVM
Taku Miyakawa
Ad
Recently uploaded
(13)
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
PDF
安尾 萌, 森野 穣, 松下 光範. 災害情報収集におけるSNSのメディア特性に関する一検討, 人工知能学会第30回インタラクティブ情報アクセスと可視化マ...
Matsushita Laboratory
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
安尾 萌, 森野 穣, 松下 光範. 災害情報収集におけるSNSのメディア特性に関する一検討, 人工知能学会第30回インタラクティブ情報アクセスと可視化マ...
Matsushita Laboratory
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
コルーチンの実装について
1.
@miyakawa_taku JJUG幹事
SI屋で賃労働 オレオレJVM言語Kinkを作っています https://bitbucket.org/kink/kink 尾上部屋の里山関のファンです 自己紹介 1/12
2.
Kinkとは! こんなの↓ プロトタイプベースのオブジェクト指向 言語 JVM上で動く言語処理系だ!
仕様策定者: 宮川 拓 実装者: 宮川 拓 ユーザ: 宮川 拓 2/12
3.
Clojureのcoroutine-based core-async についての質問が分からん! と言われたので説明します 3/12
4.
コルーチンの実装について 2014-04-18 渋谷JVM LT 宮川
拓 4/12
5.
参考文献 Resumable Funtions v2
http://www.open- std.org/jtc1/sc22/wg21/docs/papers/20 14/n4134.pdf C++の仕様化プロセスの文書 コルーチン周りの話題を網羅 特に読みやすくはない 5/12
6.
コルーチン? カーネルのスケジューラの外で 実現するスレッド Goのgoroutine, Erlangの「プロセス」など
100万とかの数が作れる 6/12
7.
Q1 コルーチンの中でメソッドを呼び出して、 その先でチャネルの読み書きをしたとき、 コンテキストスイッチはされる? 7/12
8.
コンテキストスイッチ coroutine { do_x() your_chan.send(v1) do_y() v2 =
my_chan.recv() do_z() } 8/12
9.
コンテキストスイッチ implement_coroutine(frame) { switch (frame.ip)
{ 0: frame.ip=1, do_x() return your_chan.send(v1) 1: frame.ip=2, do_y() return my_chan.recv() 2: v2 = frame.last_result do_z() return } } ←みたいに変換 されるはず 9/12
10.
コンテキストスイッチ coroutine { do_something() } function do_something()
{ your_chan.send(v) } ←こいつは変換 できるけど ←こいつは変換 できない! 10/12
11.
やりよう次第 例外を駆使すれば呼び出し先での コンテキストスイッチも可能 例: Quasar http://www.slideshare.net/miyakawatak u/quasar-actor-model-and-light-weight- threads-on-java 11/12
12.
Q2 コルーチンの中でのIOはどうしよう? 12/12
13.
IOはブロックするのだ! 普通のIOはカーネルでブロックします ブロックすると、独自のコンテキストス イッチの仕組みは動きません なので、コルーチンと組み合わせられる IOライブラリがあると便利です QuasarやN4134にはある 13/12
Download