公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
日本語の情報
https://rust-jp.rs/
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
前スレ
Rust part10
https://mevius.5ch.net/test/read.cgi/tech/1617367084/
探検
Rust part11
■ このスレッドは過去ログ倉庫に格納されています
2021/06/17(木) 00:24:12.56ID:NvYoNP9C
293デフォルトの名無しさん
2021/07/12(月) 19:46:32.99ID:NCQjfvng294デフォルトの名無しさん
2021/07/12(月) 20:38:52.08ID:hS+nIw/n295デフォルトの名無しさん
2021/07/12(月) 22:26:31.98ID:+ke1h7j2 encoding_rsが標準になって欲しい(stdに入って欲しい?)のはなぜ?
296デフォルトの名無しさん
2021/07/12(月) 22:49:13.65ID:hS+nIw/n297デフォルトの名無しさん
2021/07/13(火) 00:30:07.97ID:n/daahFD >>296
stdに取り込む提案のRFC書いてみたら?
stdに取り込む提案のRFC書いてみたら?
298デフォルトの名無しさん
2021/07/13(火) 03:10:04.82ID:EtxXgsUj >>293
中身を理解して無いくせに黙ってろ。
中身を理解して無いくせに黙ってろ。
299デフォルトの名無しさん
2021/07/13(火) 03:20:46.36ID:qEHxTKb1 www
300デフォルトの名無しさん
2021/07/13(火) 06:39:54.56ID:cTgR7KKr UTF8(とASCII)以外の文字コードを扱うのが基本機能とは思えんが
301デフォルトの名無しさん
2021/07/13(火) 07:23:42.37ID:b6J4OLfP >>296
> 基本機能だから
UTF-8さえ標準で扱えれば問題ない、UTF-8は世界標準だから
よって基本機能ではない
なので標準化する必要もないし、cargo.tomlに依存ライブラリを書くのが面倒ならapt-getでライブラリをインストールして使うC言語でも使えばいい
> 基本機能だから
UTF-8さえ標準で扱えれば問題ない、UTF-8は世界標準だから
よって基本機能ではない
なので標準化する必要もないし、cargo.tomlに依存ライブラリを書くのが面倒ならapt-getでライブラリをインストールして使うC言語でも使えばいい
302デフォルトの名無しさん
2021/07/13(火) 08:54:58.88ID:NU/mwW4g303デフォルトの名無しさん
2021/07/13(火) 09:10:42.11ID:lb+vVVj1 今は多少議論の余地があっても、数年したら
「なんでstdにSJIS扱うライブラリ入ってるの? めったに使わないのにバカじゃねーの」
って言われるのが目に見えてる
「なんでstdにSJIS扱うライブラリ入ってるの? めったに使わないのにバカじゃねーの」
って言われるのが目に見えてる
304デフォルトの名無しさん
2021/07/13(火) 09:14:58.89ID:n/daahFD エンコーディング関連のコードは量が多いだろうから
あらゆるプログラムのコンパイル時間を増やしたりバイナリサイズを大きくしたりするだけの価値があるかという議論にはなりそう
あらゆるプログラムのコンパイル時間を増やしたりバイナリサイズを大きくしたりするだけの価値があるかという議論にはなりそう
305デフォルトの名無しさん
2021/07/13(火) 09:17:07.48ID:NU/mwW4g encoding_rsはSJISのためのライブラリじゃないでしょ
306デフォルトの名無しさん
2021/07/13(火) 09:36:27.67ID:/A7/SyKa Cとかだと依存ライブラリの導入が面倒すぎるから標準化してほしいというのもわかるが
Cargo.tomlに一行書くのが面倒と言われてもあまり共感は得られないんじゃないかな
Cargo.tomlに一行書くのが面倒と言われてもあまり共感は得られないんじゃないかな
307デフォルトの名無しさん
2021/07/13(火) 11:03:30.55ID:pwZ9R0Fi >>291
変換したくないって話じゃなかったの?
変換したくないって話じゃなかったの?
308242
2021/07/13(火) 11:43:58.46ID:dtNqNBdW309デフォルトの名無しさん
2021/07/13(火) 11:50:05.93ID:WUJYnH4r SJIS 死ね
\ 死ね
\ 死ね
310デフォルトの名無しさん
2021/07/13(火) 11:52:00.92ID:WUJYnH4r >>308
うby厨 死ね
うby厨 死ね
311デフォルトの名無しさん
2021/07/13(火) 12:40:03.07ID:pH6df75p >>302 UTF-8を使えというより、今の標準はUTF-8だから標準化する必要がないということを言いたかった
そんなものを標準化したところで使うのは英語圏以外だけだし、その英語圏以外でも滅多に使うことはないから必要に応じてcargo.tomlに書き加える今の方式で良い
そんなものを標準化したところで使うのは英語圏以外だけだし、その英語圏以外でも滅多に使うことはないから必要に応じてcargo.tomlに書き加える今の方式で良い
312デフォルトの名無しさん
2021/07/13(火) 13:23:53.20ID:EtxXgsUj >>311
多数決で言えば漢字文化圏の方が人口が多い。
しかも母国語が漢字を使う。英語を母国語とする人口は三億人くらい。
漢字を母国語で使うのは15億人くらい。
漢字以外の多バイト文字を使う国まで入れたら70億人、つまり地球の95%異常
となる。英語の方が少数派。
多数決で言えば漢字文化圏の方が人口が多い。
しかも母国語が漢字を使う。英語を母国語とする人口は三億人くらい。
漢字を母国語で使うのは15億人くらい。
漢字以外の多バイト文字を使う国まで入れたら70億人、つまり地球の95%異常
となる。英語の方が少数派。
313デフォルトの名無しさん
2021/07/13(火) 13:23:53.20ID:EtxXgsUj >>311
多数決で言えば漢字文化圏の方が人口が多い。
しかも母国語が漢字を使う。英語を母国語とする人口は三億人くらい。
漢字を母国語で使うのは15億人くらい。
漢字以外の多バイト文字を使う国まで入れたら70億人、つまり地球の95%異常
となる。英語の方が少数派。
多数決で言えば漢字文化圏の方が人口が多い。
しかも母国語が漢字を使う。英語を母国語とする人口は三億人くらい。
漢字を母国語で使うのは15億人くらい。
漢字以外の多バイト文字を使う国まで入れたら70億人、つまり地球の95%異常
となる。英語の方が少数派。
314デフォルトの名無しさん
2021/07/13(火) 13:40:25.49ID:NU/mwW4g 漢字とかもあるけど、例えばMIME64のデコードとか
エンコード・デコード処理の標準化と考えれば英語圏でもありかも
エンコード・デコード処理の標準化と考えれば英語圏でもありかも
315242
2021/07/13(火) 13:42:56.59ID:dtNqNBdW 日本語をユーザー名・ファイル名など、システムに使うのは、Windows の香具師だけ
Linux を使うプロは絶対に、ascii しか使わない。
せいぜい、ハイフン・アンダーバーぐらい
もし、半角空白でも使えば、あちこちから怒りの声が届く。
システムがバグるから使うな!
Linux を使うプロは絶対に、ascii しか使わない。
せいぜい、ハイフン・アンダーバーぐらい
もし、半角空白でも使えば、あちこちから怒りの声が届く。
システムがバグるから使うな!
316デフォルトの名無しさん
2021/07/13(火) 13:46:44.21ID:NU/mwW4g >>315
ここにいる人間はそんなことわかってるから、まあ落ち着け
ここにいる人間はそんなことわかってるから、まあ落ち着け
317242
2021/07/13(火) 13:46:50.24ID:dtNqNBdW Linux のテレビの録画システムで、
日本語のテレビ番組名を、そのままファイル名にしていた香具師がいたけど、
バグって使えない
日本語のテレビ番組名を、そのままファイル名にしていた香具師がいたけど、
バグって使えない
318デフォルトの名無しさん
2021/07/13(火) 13:48:05.76ID:qZprVsAK なんか変なのが居着いたな
319デフォルトの名無しさん
2021/07/13(火) 14:21:53.19ID:Ooc6RI1Q Rubyボットの活動範囲がさらに広がってきたな
よほど暇なんだろう
よほど暇なんだろう
320デフォルトの名無しさん
2021/07/13(火) 15:12:06.73ID:QsXB5/qu 今日はRust in Actionが45%off
321デフォルトの名無しさん
2021/07/13(火) 15:55:17.99ID:oaeUW36h323デフォルトの名無しさん
2021/07/13(火) 16:16:17.73ID:QSkHhbzy Windows ではプログラムをインストールするフォルダが Program Files となっているのは
パスが空白を含むくらいでおかしくなるようなカスなソフトを早めに発見するためなんよな。
パスが空白も漢字も含みうる仕様なのに対応してないソフトがあるならそのソフトがカスなだけじゃん。
今の時点で現実にそういうソフトがあるから仕方ないという論法だと
SJIS のデータがあるから仕方ないというのと言ってることは同じなわけで、
データが大事かソフトが大事かという点で軸が違うに過ぎない。
パスが空白を含むくらいでおかしくなるようなカスなソフトを早めに発見するためなんよな。
パスが空白も漢字も含みうる仕様なのに対応してないソフトがあるならそのソフトがカスなだけじゃん。
今の時点で現実にそういうソフトがあるから仕方ないという論法だと
SJIS のデータがあるから仕方ないというのと言ってることは同じなわけで、
データが大事かソフトが大事かという点で軸が違うに過ぎない。
324デフォルトの名無しさん
2021/07/13(火) 19:45:00.15ID:SMX4Ldwl cmd「せやな」
325デフォルトの名無しさん
2021/07/14(水) 11:14:54.14ID:eOdFkTAr Windows 11は64-bitのみになるみたいだけど
Rustじゃ i686-pc-windows-gnu, i686-pc-windows-msvc はいつまでTier 1なんだろう?
Rustじゃ i686-pc-windows-gnu, i686-pc-windows-msvc はいつまでTier 1なんだろう?
326デフォルトの名無しさん
2021/07/14(水) 11:43:09.28ID:eD4Wlw/y >>325
32bit macがtier3落ちしたときはxcodeでコンパイルもできないし実行環境もないからって理由だったはず
同様にmsvcはMSがサポート切ってくればなくなるかもね
32bitアプリ自体が動かなくなるわけじゃなさそうだしgnuは大丈夫なんじゃないかな
32bit macがtier3落ちしたときはxcodeでコンパイルもできないし実行環境もないからって理由だったはず
同様にmsvcはMSがサポート切ってくればなくなるかもね
32bitアプリ自体が動かなくなるわけじゃなさそうだしgnuは大丈夫なんじゃないかな
327デフォルトの名無しさん
2021/07/14(水) 13:27:24.91ID:BkkfMVAi Win11はOSが32bitCPUでは動かないってだけで32ビットアプリはまだ動くのでは
328デフォルトの名無しさん
2021/07/14(水) 13:35:34.15ID:FWHo5b9L それであってる
329デフォルトの名無しさん
2021/07/14(水) 16:08:27.83ID:bE2/aeQE Win11は、16bitが公式では完全に動かなくなる
330デフォルトの名無しさん
2021/07/16(金) 07:53:03.75ID:xJNtEE5m >>329
マジ!? ちょっと困るなぁ
マジ!? ちょっと困るなぁ
331ハノン ◆QZaw55cn4c
2021/07/17(土) 20:18:11.59ID:Blzyac97332デフォルトの名無しさん
2021/07/17(土) 22:06:07.73ID:u8FQMqKe Win11は u16, i16 が使えなくなるのか
ま、使ったことないけど
ま、使ったことないけど
333デフォルトの名無しさん
2021/07/17(土) 23:18:45.26ID:H+CbDngl どうしてそうなる
334デフォルトの名無しさん
2021/07/18(日) 01:10:05.65ID:uA1uG+Zo 冗談と気付くまで時間かかっちゃったぞ
335デフォルトの名無しさん
2021/07/19(月) 17:48:08.64ID:Ex9Tt6CE Rustの文法を教えて欲しいんだけどさあ
https://github.com/seanmonstar/reqwest
ここのExampleの中にある
>.json::<HashMap<String, String>>()
の行って、渡されたデータをHashMapに変換してるようだけど・・・・()があるから関数を呼び出しているんだろうけど、なのに関数名が無いってどういう文法なの?
https://github.com/seanmonstar/reqwest
ここのExampleの中にある
>.json::<HashMap<String, String>>()
の行って、渡されたデータをHashMapに変換してるようだけど・・・・()があるから関数を呼び出しているんだろうけど、なのに関数名が無いってどういう文法なの?
336デフォルトの名無しさん
2021/07/19(月) 18:18:59.22ID:N5AD9uIb >>335
関数名はjsonで::の後はjsonの型パラメーター
関数名はjsonで::の後はjsonの型パラメーター
337デフォルトの名無しさん
2021/07/19(月) 18:58:43.60ID:R+McuOkS >>335
turbofishで検索してみると幸せになれるかもよ
turbofishで検索してみると幸せになれるかもよ
338デフォルトの名無しさん
2021/07/20(火) 08:52:59.51ID:m4QWlK0Z そういうことだったのか
チュートリアルやったつもりが全然身についてなくて、まるで初見の文法に見えたよ
ありがとう!
チュートリアルやったつもりが全然身についてなくて、まるで初見の文法に見えたよ
ありがとう!
339デフォルトの名無しさん
2021/07/20(火) 11:37:04.97ID:bZGFynsp async/awaitよく理解できないので質問です。
async fnを.awaitすることは、
thread::spawn(fn)で得られたJoinHandleをjoinすることと何が異なるのでしょうか
async fnを.awaitすることは、
thread::spawn(fn)で得られたJoinHandleをjoinすることと何が異なるのでしょうか
340デフォルトの名無しさん
2021/07/20(火) 13:18:42.59ID:ZLL16lvF341デフォルトの名無しさん
2021/07/20(火) 13:51:30.35ID:x1qprig3 日本語でOK
342デフォルトの名無しさん
2021/07/20(火) 14:46:16.61ID:0ur63h8Z343デフォルトの名無しさん
2021/07/20(火) 17:53:25.45ID:poqzYj22 >>339
どのプログラミング言語でも同じ概念の話として
非同期プログラミングとスレッドプログラミングの違いをまず学ぶと良いでしょう
非同期プログラミングはスレッド使わないシングルスレッドでも成立するしよく使われます
スレッドは無駄にリソースを喰って重いのでスレッドを使わないシングルスレッドでプログラミング出来る事ならばそれが最も軽くて速いです
まずはシングルスレッドでの非同期プログラミングを経験しておきましょう
もちろん最初はasync/awaitを使わずに非同期プログラミングを体験したほうが良いでしょう
そうすることで初めてasync/awaitの意義と利便性を理解することができます
以上が通常のasync/awaitの初心者がたどるべき入門コースです
どのプログラミング言語でも同じ概念の話として
非同期プログラミングとスレッドプログラミングの違いをまず学ぶと良いでしょう
非同期プログラミングはスレッド使わないシングルスレッドでも成立するしよく使われます
スレッドは無駄にリソースを喰って重いのでスレッドを使わないシングルスレッドでプログラミング出来る事ならばそれが最も軽くて速いです
まずはシングルスレッドでの非同期プログラミングを経験しておきましょう
もちろん最初はasync/awaitを使わずに非同期プログラミングを体験したほうが良いでしょう
そうすることで初めてasync/awaitの意義と利便性を理解することができます
以上が通常のasync/awaitの初心者がたどるべき入門コースです
344デフォルトの名無しさん
2021/07/21(水) 18:10:51.09ID:xEcHVrDP 初級プログラマーは非同期プログラミングをしたことない人もいるけど
中級プログラマーになるには必須の技術だからね
中級プログラマーになるには必須の技術だからね
345デフォルトの名無しさん
2021/07/21(水) 20:22:35.81ID:zFAfbWuD 初級なら知らなくても仕方ない、中級なら必須という区分けはなんか違和感あるかな。対象の業務次第で知っとけよって範囲は違うからなぁ。
346デフォルトの名無しさん
2021/07/22(木) 00:13:25.98ID:nOo3Pk8s その辺は分野にもよるでしょ
組み込みと可だと初級でもマルチスレッドシラネはかなり問題だぞ
組み込みと可だと初級でもマルチスレッドシラネはかなり問題だぞ
347デフォルトの名無しさん
2021/07/22(木) 00:59:16.39ID:GmU5m4WV 昔ながらの言語だとスレッドはできてもコルーチンはできなかったりするので分野次第かな
348デフォルトの名無しさん
2021/07/22(木) 03:11:24.17ID:lswwPTyi349デフォルトの名無しさん
2021/07/22(木) 10:08:08.42ID:I7nexIle プリエンプティブじゃないマルチタスクωですねわかります
350デフォルトの名無しさん
2021/07/22(木) 11:38:36.18ID:K4TSDl0a await後にどのスレッドが戻ってくるかは運なの?
351デフォルトの名無しさん
2021/07/22(木) 13:02:57.44ID:DiCBumX8 >>350
ランタイムの実装次第
ランタイムの実装次第
352デフォルトの名無しさん
2021/07/22(木) 16:56:26.36ID:PJWgwtfy >>350
async/awaitとスレッドは直接は関係がない
async/awaitの対象はタスク
例えば1つのスレッドに10000のタスクを動作可能
8つのスレッドそれぞれでそれを行なえば計80000のタスクになるけども
スレッド1つにタスク1つしか使わなければ8つのスレッドで計8つのタスクになるといった具合い
これらはランタイムによってサポートが様々
したがって正確な質問は「await後にどのタスクが戻ってくるかは運なの?」となるけど
これはランタイムのスケジューリング次第
ランタイムはRustの言語仕様範囲外なので自分で決めた方針でスケジューリングするランタイムを作ることが可能
つまり運ではなく自分の思い通りに実行させることも可能
async/awaitとスレッドは直接は関係がない
async/awaitの対象はタスク
例えば1つのスレッドに10000のタスクを動作可能
8つのスレッドそれぞれでそれを行なえば計80000のタスクになるけども
スレッド1つにタスク1つしか使わなければ8つのスレッドで計8つのタスクになるといった具合い
これらはランタイムによってサポートが様々
したがって正確な質問は「await後にどのタスクが戻ってくるかは運なの?」となるけど
これはランタイムのスケジューリング次第
ランタイムはRustの言語仕様範囲外なので自分で決めた方針でスケジューリングするランタイムを作ることが可能
つまり運ではなく自分の思い通りに実行させることも可能
353デフォルトの名無しさん
2021/07/22(木) 17:10:57.69ID:KJg/dUdU JSのasync awaitってややこしい
goroutineのほうが簡単
goroutineのほうが簡単
354デフォルトの名無しさん
2021/07/22(木) 20:26:18.99ID:7YxYJ8AQ promise使うのに比べてそこまで楽か?って言われるとそうでもないわな
355ハノン ◆QZaw55cn4c
2021/07/22(木) 20:40:46.75ID:BtepJ1kx356デフォルトの名無しさん
2021/07/22(木) 23:09:12.36ID:9gEORT6M JSのawait/asyncとかめちゃくちゃ簡単やろ
シングルスレッドなのと背後にイベントループが存在することを抑えておけば余裕よ
すまんスレチだな
シングルスレッドなのと背後にイベントループが存在することを抑えておけば余裕よ
すまんスレチだな
357デフォルトの名無しさん
2021/07/23(金) 00:43:44.14ID:n7dIeb/9 >>355
ここはRustのスレ。
スレッドとはstd::threadであり、いわゆるOSスレッド。
つまり1つのOSプロセスの中で、1つまたは複数のOSスレッドが動く。
一方で、async/.awaitが対象としているのは、スレッドよりさらに小さいタスク。
つまり1つのOSスレッドの上で、1つまたは複数のタスクが動く。
例えばシングルスレッドマルチタスクランタイムでは、1つのOSスレッドの上で無数のタスクを動かすことができる。
async/.awaitはこの非同期に実行されるタスクを扱う。
ここはRustのスレ。
スレッドとはstd::threadであり、いわゆるOSスレッド。
つまり1つのOSプロセスの中で、1つまたは複数のOSスレッドが動く。
一方で、async/.awaitが対象としているのは、スレッドよりさらに小さいタスク。
つまり1つのOSスレッドの上で、1つまたは複数のタスクが動く。
例えばシングルスレッドマルチタスクランタイムでは、1つのOSスレッドの上で無数のタスクを動かすことができる。
async/.awaitはこの非同期に実行されるタスクを扱う。
358デフォルトの名無しさん
2021/07/23(金) 02:10:09.02ID:j3QjPF86 asyncは途中I/Oウェイトで待たされるような処理じゃないと意味がない
359デフォルトの名無しさん
2021/07/23(金) 10:52:29.51ID:QeE9wwG7 スレッド、プロセス、タスクなどの定義は分野やプラットフォーム等によって異なる
360デフォルトの名無しさん
2021/07/23(金) 12:55:46.87ID:luTvzo3i VSCode+Rust Analyzerの環境で、ミュータブル変数にアンダーラインが付されるのをやめたいのですがどうすればよいですか?
361デフォルトの名無しさん
2021/07/23(金) 13:55:17.59ID:Y7b/5yJk awaitの前後でスレッドは変わる可能性があるものの、タスクは変わらないんだと思ってたわ
362デフォルトの名無しさん
2021/07/23(金) 13:58:58.67ID:c2hWXBFi >>357の言う「タスク」って1つのasync関数のように読めるんだが、そういう理解で合ってるのか?
363デフォルトの名無しさん
2021/07/23(金) 14:46:14.22ID:eQcO0XNp364デフォルトの名無しさん
2021/07/23(金) 15:12:50.36ID:c2hWXBFi だとすると「スレッドよりさらに小さい」ってのは変だな。大きい小さいあるいは包含関係が決められるものじゃない。
365デフォルトの名無しさん
2021/07/23(金) 15:14:21.60ID:6EkuYiQH そもそも直交する概念だし用途によって使い分けるものでもあるし
366デフォルトの名無しさん
2021/07/23(金) 16:49:32.73ID:+8+VImv7 スレッドより軽量という意味での小さいなら分かる
367デフォルトの名無しさん
2021/07/23(金) 19:17:06.47ID:Nx0yKcVz Elixirのプロセスは、軽量プロセスと言われていて、
OSのプロセスやスレッドではなく、Greenスレッドです
カーネルではなく、VMでスケジューリングされるので軽量、
コンテキストスイッチが発生しない
1軽量プロセスで約300ワードです
OSのプロセスやスレッドではなく、Greenスレッドです
カーネルではなく、VMでスケジューリングされるので軽量、
コンテキストスイッチが発生しない
1軽量プロセスで約300ワードです
368デフォルトの名無しさん
2021/07/23(金) 19:46:36.80ID:j3QjPF86 ここはRustスレ
369デフォルトの名無しさん
2021/07/23(金) 21:20:19.48ID:O9MjyOb4 いつものRubyキチガイだろう
何言っても無駄だからスルーするしかない
何言っても無駄だからスルーするしかない
370デフォルトの名無しさん
2021/07/23(金) 21:25:52.66ID:c2hWXBFi >>366
スレッドで動くんだから「スレッドより軽量」ってことはない。
スレッドで動くんだから「スレッドより軽量」ってことはない。
371デフォルトの名無しさん
2021/07/23(金) 21:50:34.41ID:TZPR0HeA >>367
軽量プロセスでもコンテキストスイッチは発生するよ
軽量プロセスでもコンテキストスイッチは発生するよ
372デフォルトの名無しさん
2021/07/23(金) 22:59:27.49ID:eQcO0XNp >>370
タスクと同じことをスレッドでやろうとした場合の比較ね
タスクと同じ数のスレッドを作った場合スタックだけで結構な量のメモリが必要になったりする
あとコンテキストスイッチのコストは少なく済んだりするんじゃないかな
タスクと同じことをスレッドでやろうとした場合の比較ね
タスクと同じ数のスレッドを作った場合スタックだけで結構な量のメモリが必要になったりする
あとコンテキストスイッチのコストは少なく済んだりするんじゃないかな
373デフォルトの名無しさん
2021/07/23(金) 23:08:30.77ID:c2hWXBFi374デフォルトの名無しさん
2021/07/24(土) 00:30:53.20ID:LBBZ+Kmj 心臓のスイッチ切って死なねえかなこいつら
375デフォルトの名無しさん
2021/07/24(土) 01:45:40.45ID:5ex845z5376デフォルトの名無しさん
2021/07/24(土) 02:52:34.75ID:F/fcX2Mm タスクって名前が良くないな
一般的にはタスクってプロセスのことじゃない?
一般的にはタスクってプロセスのことじゃない?
377デフォルトの名無しさん
2021/07/24(土) 02:57:53.91ID:UokC4u3Y んなことないでしょ???
378デフォルトの名無しさん
2021/07/24(土) 04:00:31.27ID:NjCPGO8Q タスクってのは内部実装的には非同期I/Oを使ったシングルスレッドでしょ。
379デフォルトの名無しさん
2021/07/24(土) 07:37:56.03ID:vPIKycwR380デフォルトの名無しさん
2021/07/24(土) 09:29:01.55ID:qEX1axDl Rustのasyncについて知りたければ「async-book」は必読なので
次からテンプレに入れよう
https://rust-lang.github.io/async-book/
>>980
よろしこ
次からテンプレに入れよう
https://rust-lang.github.io/async-book/
>>980
よろしこ
381デフォルトの名無しさん
2021/07/24(土) 10:59:35.94ID:/TMjuFD+ >>379
1スレッドで同時に実行されるタスクが1つというのは正しい
従来のスレッドでの並列化(1スレッド1タスク)の場合、IO処理を呼び出すと処理完了するまでの間はスレッドはsleep状態になってしまっていた
sleepしている間に他のタスクを実行させるためには、実行するタスクと同じ数だけのスレッドを生成する必要があるが
スレッド生成で消費するリソースが多いため数万タスクを同時に捌くことは難しかった
async-awaitではIO処理完了までの間スレッドをsleep状態にするのではなく別のタスクを実行する
これによりスレッドあたりの処理可能タスク数が増えるため、アプリケーション全体で同時に捌けるタスク数も増える
従来の手法でもスレッドをsleepさせないようなプログラミングは可能だけどプログラムの構造を大きく書き換えないといけなかった
普通のスレッド並列のプログラムと同じ書き味でより多くのタスクを捌けるプログラムが書けるというのがasync-awaitの一番のメリット
ただし常にasync-awaitが望ましいわけでもない
async-awaitで効率的に実行できるのはIO待ちが発生するタスクの場合で、CPUをぶんまわす処理には向いていない
適材適所で従来のスレッドによる並列化手法と組み合わせて使うことになる
1スレッドで同時に実行されるタスクが1つというのは正しい
従来のスレッドでの並列化(1スレッド1タスク)の場合、IO処理を呼び出すと処理完了するまでの間はスレッドはsleep状態になってしまっていた
sleepしている間に他のタスクを実行させるためには、実行するタスクと同じ数だけのスレッドを生成する必要があるが
スレッド生成で消費するリソースが多いため数万タスクを同時に捌くことは難しかった
async-awaitではIO処理完了までの間スレッドをsleep状態にするのではなく別のタスクを実行する
これによりスレッドあたりの処理可能タスク数が増えるため、アプリケーション全体で同時に捌けるタスク数も増える
従来の手法でもスレッドをsleepさせないようなプログラミングは可能だけどプログラムの構造を大きく書き換えないといけなかった
普通のスレッド並列のプログラムと同じ書き味でより多くのタスクを捌けるプログラムが書けるというのがasync-awaitの一番のメリット
ただし常にasync-awaitが望ましいわけでもない
async-awaitで効率的に実行できるのはIO待ちが発生するタスクの場合で、CPUをぶんまわす処理には向いていない
適材適所で従来のスレッドによる並列化手法と組み合わせて使うことになる
382デフォルトの名無しさん
2021/07/24(土) 11:28:00.32ID:0bHT8/gy >>379
いいえ
1つのスレッド上で同時に複数のタスクを並行(concurrent)に実行できるのがasync/awaitのタスクです。
C10Kと言われるように1つのスレッド上で10000のタスクでも並行に実行できます。
ちなみに1つのスレッド上で並列(parallel)に実行されるのは1つのタスクのみなのは当たり前なので、わざわざ言うことはないです。
今回はasync/awaitの話なので、
『1つのスレッド上で同時に複数のタスクを並行(concurrent)に実行できる』が正解です。
いいえ
1つのスレッド上で同時に複数のタスクを並行(concurrent)に実行できるのがasync/awaitのタスクです。
C10Kと言われるように1つのスレッド上で10000のタスクでも並行に実行できます。
ちなみに1つのスレッド上で並列(parallel)に実行されるのは1つのタスクのみなのは当たり前なので、わざわざ言うことはないです。
今回はasync/awaitの話なので、
『1つのスレッド上で同時に複数のタスクを並行(concurrent)に実行できる』が正解です。
383デフォルトの名無しさん
2021/07/24(土) 11:33:29.24ID:vPIKycwR >>381
その1スレッドが時分割で複数タスクを実行できるということのちょうど裏返しで、1タスクは複数スレッドから実行され得る。
つまりそこに大小関係、包含関係などは無い直交した概念。
軽量云々てのはOSスレッドとグリーンスレッドの話とごっちゃになってんじゃないかねぇ。
その1スレッドが時分割で複数タスクを実行できるということのちょうど裏返しで、1タスクは複数スレッドから実行され得る。
つまりそこに大小関係、包含関係などは無い直交した概念。
軽量云々てのはOSスレッドとグリーンスレッドの話とごっちゃになってんじゃないかねぇ。
384デフォルトの名無しさん
2021/07/24(土) 12:05:51.45ID:F/fcX2Mm385デフォルトの名無しさん
2021/07/24(土) 12:13:15.89ID:XrocH4ML ねえこの引っ込みがつかなくなったゴミクズ共のメンチの切り合いっていつまで続くの?
386デフォルトの名無しさん
2021/07/24(土) 12:14:13.90ID:XrocH4ML 包丁刺し合って死んで終わらないからネットのマウント取り合いって性質が悪いんだよね
387デフォルトの名無しさん
2021/07/24(土) 12:17:43.31ID:sVj/Jq99 5chに何も期待してるのか
388デフォルトの名無しさん
2021/07/24(土) 12:21:52.26ID:K4Uz+tqB389デフォルトの名無しさん
2021/07/24(土) 12:40:53.43ID:F/fcX2Mm390デフォルトの名無しさん
2021/07/24(土) 12:41:30.17ID:F/fcX2Mm 間違った
並行じゃないってことね
並行じゃないってことね
391デフォルトの名無しさん
2021/07/24(土) 12:42:53.22ID:F/fcX2Mm で、実際のところランタイムってlongjmpみたいなことしてるの?
392デフォルトの名無しさん
2021/07/24(土) 12:49:05.14ID:yYYDVwTY■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★2 [お断り★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★6 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★4 [BFU★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪
- 高市早苗さん、長年の東アジアの懸念である朝鮮半島統一を果たしてしまいアジアの英雄になる [152212454]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【悲報】高市早苗さん、もう辞職しか選択肢がない… [271912485]
- 【岸田速報】山上妹、覚醒。「自慢の兄」「安倍晋三と統一教会は強固な関係性」「法の下では解決不能」 [559744496]
- 【ござる専🏡】風間🥷配信実況スレ🏯【風間いろは】
