Rustのタスクモデルについて

zigen
zigen Software Engineer
Rustのタスクモデル
@dim7th
9/7 Rust Samurai その弐
13年9月7日土曜日
•学芸大学教育学部2年
•Twitter @dim7th
•3Dプリンタとか
•scheme, python, C++, Dartとか
自己紹介
13年9月7日土曜日
1.タスクについて
2.タスクの通信
3.immutableなデータの共有
Rustのタスクモデルについて
13年9月7日土曜日
Rust 0.8-preで話します
• RustTasks and CommunicationTutorial
• http://static.rust-lang.org/doc/tutorial-tasks.html
13年9月7日土曜日
1.タスクについて
13年9月7日土曜日
Rustにおけるタスクとは
• VMにおけるグリーンスレッドのようなもの
• 軽量でタスク間においてはメモリが独立
• タスク間のメッセージ通信が可能
• OSのスレッドにRustのスケジューラが割り当てる
• マルチコアであれば並列に割り振られる
13年9月7日土曜日
というわけで実際に
13年9月7日土曜日
タスクを生成してみる
fn main(){
spawn( || println("hello"));
}
13年9月7日土曜日
fn main(){
spawn( || println("hello"));
}
Lambda Expression
タスクを生成してみる
13年9月7日土曜日
Lambda Expression
let func = | arg | {
println(fmt!(“arg=%?”,arg));
}
func(10)
=>10
13年9月7日土曜日
よく使われる形で
do spawn() {
println(“hello, world!”);
}
13年9月7日土曜日
よく使われる形で
do spawn() {
println(“hello, world!”);
}
Do Expression
13年9月7日土曜日
spawn( |arg| {
hoge(arg) ;
});
Do Expression
13年9月7日土曜日
Do Expression
spawn( |arg| {
hoge(arg) ;
});
do spawn |arg| {
hoge(arg);
}
13年9月7日土曜日
2.タスクの通信
13年9月7日土曜日
Pipe
13年9月7日土曜日
“A pipe is simply
a pair of endpoints”
13年9月7日土曜日
Pipe
13年9月7日土曜日
portchan
Pipe
13年9月7日土曜日
Pipe
Task
Channel
Port
AnotherTask
13年9月7日土曜日
実際にやってみる
use std : : task;
let (port , chan) : (Port<int>, Chan<int>) = stream( );
do spawn | arg | {
chan . send (arg);
}
13年9月7日土曜日
実際にやってみる
use std : : task;
let (port , chan) : (Port<int>, Chan<int>) = stream( );
do spawn | arg | {
chan . send (arg);
}
型宣言
13年9月7日土曜日
実際にやってみる
use std : : task;
let (port , chan) : (Port<int>, Chan<int>) = stream( );
do spawn | arg | {
chan . send (arg);
}
型宣言
argはport . recv()で取得できる
13年9月7日土曜日
一つのChanは複数の
タスクから使えない
13年9月7日土曜日
例えば
let (port , chan) = stream( );
do spawn | arg1 | {
chan . send (arg1);
}
do spawn | arg2 | {
chan . send (arg2);
}
13年9月7日土曜日
`chan` moved into closure
environment here
because it has type `~fn:Send( )`,
which is non-copyable
(perhaps you meant to use clone( )? )
error: aborting due to previous error
13年9月7日土曜日
怒られます
13年9月7日土曜日
そこで出てくるのが
13年9月7日土曜日
SharedChan
13年9月7日土曜日
use std : : comm;
let (port , chan) = comm : : stream( );
13年9月7日土曜日
use std : : comm;
let (port , chan) = comm : : stream( );
let chan = comm : : SharedChan : : new(chan);
13年9月7日土曜日
use std : : comm;
let (port , chan) = comm : : stream( );
let chan = comm : : SharedChan : : new(chan);
chanを上書きする
13年9月7日土曜日
use std : : comm;
let (port , chan) = comm : : stream( );
let chan = comm : : SharedChan : : new(chan);
do spawn | hoge | {
let child_chan = chan . clone( );
child_chan.send(arg);
}
13年9月7日土曜日
use std : : comm;
let (port , chan) = comm : : stream( );
let chan = comm : : SharedChan : : new(chan);
do spawn | hoge | {
let child_chan = chan . clone( );
child_chan.send(arg);
}
タスク内でclone( )する
13年9月7日土曜日
Servoではどうなの?
servo/src/components/main/servo.rc
151行目らへん
13年9月7日土曜日
3. immutableなデータの共有
13年9月7日土曜日
Pipeを使ってもできる
13年9月7日土曜日
Pipeを使ってもできる
immutableなので
無駄なデータのコピー
13年9月7日土曜日
Auto Reference Counted wrapper
13年9月7日土曜日
extern mod extra;
use extra : : arc : :Arc;
let (port , chan) = stream( );
let pi = 3.14159;
let shared_num = Arc : : new(num);
13年9月7日土曜日
extern mod extra;
use extra : : arc : :Arc;
let (port , chan) = stream( );
let pi = 3.14159;
let shared_num = Arc : : new(num);
	

 do spawn {
	

 	

 let local_num :Arc<float> = port.recv();
	

 	

 println( fmt!( " % ? ", local_num . get( )));
	

 }
13年9月7日土曜日
http://saneyukis.hatenablog.com/entry/2013/07/28/233325
http://static.rust-lang.org/doc/tutorial-tasks.html
http://static.rust-lang.org/doc/rust.html
URL
13年9月7日土曜日
4.タスクの失敗
13年9月7日土曜日
“exceptions in Rust are
unrecoverable within a single task:
once a task fails, there is no way to
"catch" the exception.”
http://static.rust-lang.org/doc/tutorial-tasks.html
13年9月7日土曜日
タスクの例外は回復できない
13年9月7日土曜日
例外はfail!( )を呼ぶことで発生できる
13年9月7日土曜日
let result : Result<( ) , ( )> = do task : : try {
fail( );
};
assert!(result . is_err( ));
13年9月7日土曜日
基本的にタスクが死ぬと
関連するタスク全て死ぬ
13年9月7日土曜日
do spawn{
do spawn {
fail( );
}
hoge1( );
}
hoge2( );
13年9月7日土曜日
1 of 49

Recommended

Raspberry Piにdiskless modeのalpine linuxを導入してみる by
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるKenichiro MATOHARA
5.6K views34 slides
NanoStrand by
NanoStrandNanoStrand
NanoStrandMasashi Umezawa
818 views26 slides
PHP-FPMとuWSGI——mod_php以外の選択肢を探る by
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るYoshio Hanawa
23.2K views21 slides
ちょっと古いマシンにLinuxを by
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをKenichiro MATOHARA
1.4K views11 slides
Apache James - local mail server by
Apache James - local mail serverApache James - local mail server
Apache James - local mail serverTozo Tanaka
1.3K views8 slides
MmapScanner by
MmapScannerMmapScanner
MmapScannerMasahiro Tomita
1.7K views28 slides

More Related Content

What's hot

マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome) by
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)Kenichiro MATOHARA
3.1K views40 slides
Gunosy.go#2 package/compress by
Gunosy.go#2 package/compressGunosy.go#2 package/compress
Gunosy.go#2 package/compressShunsuke Aihara
1.5K views13 slides
ゆるかわPhp by
ゆるかわPhpゆるかわPhp
ゆるかわPhpRyota Mochizuki
1.1K views83 slides
Seccan2012 secure os by
Seccan2012 secure osSeccan2012 secure os
Seccan2012 secure osChiharu Usui
243 views10 slides
Perl and Email #2/Kansai.pm第14回ミーティング@京都 by
Perl and Email #2/Kansai.pm第14回ミーティング@京都Perl and Email #2/Kansai.pm第14回ミーティング@京都
Perl and Email #2/Kansai.pm第14回ミーティング@京都azumakuniyuki 🐈
1K views25 slides
俺とDockerとtDiaryとkubernetes by
俺とDockerとtDiaryとkubernetes俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetesMasayuki KaToH
1.3K views23 slides

What's hot(17)

マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome) by Kenichiro MATOHARA
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
Kenichiro MATOHARA3.1K views
Seccan2012 secure os by Chiharu Usui
Seccan2012 secure osSeccan2012 secure os
Seccan2012 secure os
Chiharu Usui243 views
Perl and Email #2/Kansai.pm第14回ミーティング@京都 by azumakuniyuki 🐈
Perl and Email #2/Kansai.pm第14回ミーティング@京都Perl and Email #2/Kansai.pm第14回ミーティング@京都
Perl and Email #2/Kansai.pm第14回ミーティング@京都
俺とDockerとtDiaryとkubernetes by Masayuki KaToH
俺とDockerとtDiaryとkubernetes俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
Masayuki KaToH1.3K views
第二回 クラウドサーバー管理者若葉の会 by masayoshi shiraishi
第二回 クラウドサーバー管理者若葉の会第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会
Tremaとtrema edgeの違い by hiroshi oshiba
Tremaとtrema edgeの違いTremaとtrema edgeの違い
Tremaとtrema edgeの違い
hiroshi oshiba5.9K views
Postgre sql9.3新機能 (OSC hiroshima 2013) by Soudai Sone
Postgre sql9.3新機能 (OSC hiroshima 2013)Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)
Soudai Sone3.2K views
Word pressのテーマは firephpでハックすれば 良かったのか by Hisateru Tanaka
Word pressのテーマは firephpでハックすれば 良かったのかWord pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
Hisateru Tanaka2.4K views
私がPerlを使う理由 by Yohei Azekatsu
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由
Yohei Azekatsu2.5K views
プログラミング作法 by Kota Uchida
プログラミング作法プログラミング作法
プログラミング作法
Kota Uchida3.5K views
Bash 脆弱性祭から抜け出そう by Masafumi Oe
Bash 脆弱性祭から抜け出そうBash 脆弱性祭から抜け出そう
Bash 脆弱性祭から抜け出そう
Masafumi Oe3.9K views
Llでゆるふわプログラミングのすすめ by mizcki
LlでゆるふわプログラミングのすすめLlでゆるふわプログラミングのすすめ
Llでゆるふわプログラミングのすすめ
mizcki514 views
シェルスクリプトを極める by bsdhack
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極める
bsdhack8.1K views
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版) by hiroshi oshiba
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
hiroshi oshiba4K views
できる!trema-switch by Hiroaki Kawai
できる!trema-switchできる!trema-switch
できる!trema-switch
Hiroaki Kawai2.5K views

Viewers also liked

ジェネリクスの基礎と クラス設計への応用 by
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
30.6K views66 slides
Rust 超入門 by
Rust 超入門Rust 超入門
Rust 超入門Chris Birchall
4K views13 slides
入門core.async by
入門core.async入門core.async
入門core.asyncsohta
2.7K views38 slides
Teratail Study  ~機械学習編#1~ by
Teratail Study  ~機械学習編#1~Teratail Study  ~機械学習編#1~
Teratail Study  ~機械学習編#1~Kosuke Fujimoto
1.7K views53 slides
Azure Machine Learning getting started by
Azure Machine Learning getting startedAzure Machine Learning getting started
Azure Machine Learning getting startedMasayuki Ota
12.3K views84 slides
Go初心者向けハンズオン コマンドラインツールを作ろう by
Go初心者向けハンズオン コマンドラインツールを作ろうGo初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろうTakuya Ueda
14.6K views28 slides

Viewers also liked(13)

ジェネリクスの基礎と クラス設計への応用 by nagise
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
nagise30.6K views
入門core.async by sohta
入門core.async入門core.async
入門core.async
sohta2.7K views
Teratail Study  ~機械学習編#1~ by Kosuke Fujimoto
Teratail Study  ~機械学習編#1~Teratail Study  ~機械学習編#1~
Teratail Study  ~機械学習編#1~
Kosuke Fujimoto1.7K views
Azure Machine Learning getting started by Masayuki Ota
Azure Machine Learning getting startedAzure Machine Learning getting started
Azure Machine Learning getting started
Masayuki Ota12.3K views
Go初心者向けハンズオン コマンドラインツールを作ろう by Takuya Ueda
Go初心者向けハンズオン コマンドラインツールを作ろうGo初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろう
Takuya Ueda14.6K views
DB設計でこだわりたい三つの要素 by Takahiro YAMADA
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
Takahiro YAMADA20.4K views
たとえ日本人同士でも必要な異文化理解力 by Yoshitaka Kawashima
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima18.8K views
イミュータブルデータモデル(世代編) by Yoshitaka Kawashima
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima38.1K views
絶対落ちないアプリの作り方 by Fumihiko Shiroyama
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Fumihiko Shiroyama52.9K views
アルゴリズム取引のシステムを開発・運用してみて分かったこと by Satoshi KOBAYASHI
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったこと
Satoshi KOBAYASHI79K views
イミュータブルデータモデル(入門編) by Yoshitaka Kawashima
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima185.7K views
最近のストリーム処理事情振り返り by Sotaro Kimura
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
Sotaro Kimura17.3K views

Similar to Rustのタスクモデルについて

Sencha Touch working with AWS by
Sencha Touch working with AWSSencha Touch working with AWS
Sencha Touch working with AWS久司 中村
2.4K views31 slides
capistrano-colorized-stream by
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-streamNaotoshi Seo
3.5K views14 slides
Moff 20130309 jawsug_santo_v01 by
Moff 20130309 jawsug_santo_v01Moff 20130309 jawsug_santo_v01
Moff 20130309 jawsug_santo_v01Motohiro Yonesaka
2.7K views41 slides
Sinatraでwebアプリケーション開発を学ぶ by
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶHiroshi Oyamada
6.1K views28 slides
Scala conf2013 by
Scala conf2013Scala conf2013
Scala conf2013Takafumi Ikeda
4.4K views70 slides
Should we write such like plugin or not? by
Should we write such like plugin or not?Should we write such like plugin or not?
Should we write such like plugin or not?SATOSHI TAGOMORI
8.6K views20 slides

Similar to Rustのタスクモデルについて(20)

Sencha Touch working with AWS by 久司 中村
Sencha Touch working with AWSSencha Touch working with AWS
Sencha Touch working with AWS
久司 中村2.4K views
capistrano-colorized-stream by Naotoshi Seo
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-stream
Naotoshi Seo3.5K views
Sinatraでwebアプリケーション開発を学ぶ by Hiroshi Oyamada
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
Hiroshi Oyamada6.1K views
Should we write such like plugin or not? by SATOSHI TAGOMORI
Should we write such like plugin or not?Should we write such like plugin or not?
Should we write such like plugin or not?
SATOSHI TAGOMORI8.6K views
Webサイト・フロントエンドの高速化とgrunt.jsについて by Tomo Fujita
Webサイト・フロントエンドの高速化とgrunt.jsについてWebサイト・フロントエンドの高速化とgrunt.jsについて
Webサイト・フロントエンドの高速化とgrunt.jsについて
Tomo Fujita4.9K views
Sqale の Puppet と Chef (と テスト) by hiboma
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
hiboma5K views
きつねさんでもわかるLLVM読書会amagasaki.rb第5章 by Takayuki Kurosawa
きつねさんでもわかるLLVM読書会amagasaki.rb第5章きつねさんでもわかるLLVM読書会amagasaki.rb第5章
きつねさんでもわかるLLVM読書会amagasaki.rb第5章
Takayuki Kurosawa1.9K views
Mtddc kyusyu-lightningtalks by Yuji Takayama
Mtddc kyusyu-lightningtalksMtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalks
Yuji Takayama1.3K views
Power Assert and perl.js by Goro Fuji
Power Assert and perl.jsPower Assert and perl.js
Power Assert and perl.js
Goro Fuji3.9K views
第1回鹿児島node.jsの会資料_内村 by Koichi Uchimura
第1回鹿児島node.jsの会資料_内村第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura2.3K views
Perl and Email #3 ``Haineko''/Kyoto.pm #5 by azumakuniyuki 🐈
Perl and Email #3 ``Haineko''/Kyoto.pm #5Perl and Email #3 ``Haineko''/Kyoto.pm #5
Perl and Email #3 ``Haineko''/Kyoto.pm #5
azumakuniyuki 🐈1.4K views
PHP matsuri 2013 Windows Azure Storage SDK for PHP by Takeshi Sakurai
PHP matsuri 2013 Windows Azure Storage SDK for PHPPHP matsuri 2013 Windows Azure Storage SDK for PHP
PHP matsuri 2013 Windows Azure Storage SDK for PHP
Takeshi Sakurai1K views
PhpStormとGrunt.jsで作るCakePHP快適開発環境 by kamiyam .
PhpStormとGrunt.jsで作るCakePHP快適開発環境 PhpStormとGrunt.jsで作るCakePHP快適開発環境
PhpStormとGrunt.jsで作るCakePHP快適開発環境
kamiyam .8K views

Recently uploaded

他社会計ソフトからの仕訳インポート(TKC) by
他社会計ソフトからの仕訳インポート(TKC)他社会計ソフトからの仕訳インポート(TKC)
他社会計ソフトからの仕訳インポート(TKC)Money Forward, Inc.
13 views19 slides
slide.pdf by
slide.pdfslide.pdf
slide.pdfssuser7664a8
945 views5 slides
【会社紹介資料】イー・フォース株式会社_2023_11.pdf by
【会社紹介資料】イー・フォース株式会社_2023_11.pdf【会社紹介資料】イー・フォース株式会社_2023_11.pdf
【会社紹介資料】イー・フォース株式会社_2023_11.pdfeForce
58 views39 slides
スライドショー.pptx by
スライドショー.pptxスライドショー.pptx
スライドショー.pptxkohsei-hp
24 views11 slides
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163) by
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163)株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163)Members_corp
90 views18 slides
Service.pdf by
Service.pdfService.pdf
Service.pdfYasuyoshi Minehisa
44 views12 slides

Recently uploaded(16)

他社会計ソフトからの仕訳インポート(TKC) by Money Forward, Inc.
他社会計ソフトからの仕訳インポート(TKC)他社会計ソフトからの仕訳インポート(TKC)
他社会計ソフトからの仕訳インポート(TKC)
【会社紹介資料】イー・フォース株式会社_2023_11.pdf by eForce
【会社紹介資料】イー・フォース株式会社_2023_11.pdf【会社紹介資料】イー・フォース株式会社_2023_11.pdf
【会社紹介資料】イー・フォース株式会社_2023_11.pdf
eForce58 views
スライドショー.pptx by kohsei-hp
スライドショー.pptxスライドショー.pptx
スライドショー.pptx
kohsei-hp24 views
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163) by Members_corp
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163)株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2023年11月号(♯163)
Members_corp90 views
1ページでわかるTAPP.pdf by ssuser615e86
1ページでわかるTAPP.pdf1ページでわかるTAPP.pdf
1ページでわかるTAPP.pdf
ssuser615e8653 views
fmx_credential.pdf by kiryutakumi
fmx_credential.pdffmx_credential.pdf
fmx_credential.pdf
kiryutakumi156 views
企業向け_01BoosterStudio_231126.pdf by ssusere7a2172
企業向け_01BoosterStudio_231126.pdf企業向け_01BoosterStudio_231126.pdf
企業向け_01BoosterStudio_231126.pdf
ssusere7a217225 views
Helpfeelサービス資料.pdf by ssuserb35af3
Helpfeelサービス資料.pdfHelpfeelサービス資料.pdf
Helpfeelサービス資料.pdf
ssuserb35af328 views
個人開発のオープンソースで起業&マネタイズ.pptx by uchi825
個人開発のオープンソースで起業&マネタイズ.pptx個人開発のオープンソースで起業&マネタイズ.pptx
個人開発のオープンソースで起業&マネタイズ.pptx
uchi8256 views
cluture deck.pdf by hiromasa4
cluture deck.pdfcluture deck.pdf
cluture deck.pdf
hiromasa438 views
清田軌道工業会社紹介資料230728.pdf by ymoteki
清田軌道工業会社紹介資料230728.pdf清田軌道工業会社紹介資料230728.pdf
清田軌道工業会社紹介資料230728.pdf
ymoteki10 views

Rustのタスクモデルについて