C++ vs Rust
■ このスレッドは過去ログ倉庫に格納されています
2021/04/24(土) 08:04:49.48ID:nPKzA798
競え
699デフォルトの名無しさん
2021/12/01(水) 03:42:46.81ID:SFGWVOvC700デフォルトの名無しさん
2021/12/01(水) 04:21:18.83ID:nZUH6NM1 OpenGLやCUDAでもGPUに処理をお願いする関数を呼んだら計算が完了する前に戻る非同期処理は一般的に使われているよ。
701デフォルトの名無しさん
2021/12/01(水) 07:22:02.74ID:2cqvkUoy >>698
GUIなアプリは非同期プログラミングが避けられないと思うぞ
でないと、何か処理するごとにユーザーに待たせることになる
シングルスレッドでも工夫次第で待たせなくは出来るが、かえって実装が複雑になってしまう
GUIなアプリは非同期プログラミングが避けられないと思うぞ
でないと、何か処理するごとにユーザーに待たせることになる
シングルスレッドでも工夫次第で待たせなくは出来るが、かえって実装が複雑になってしまう
702デフォルトの名無しさん
2021/12/01(水) 08:05:39.60ID:SFGWVOvC >>701
ブラウザ上で動いているJavaScriptはシングルスレッドですが
スレッド内で非同期に複数のタスクが動くのでGUIに対応出来ています
例えばマウスが動いたりクリックされたりするたびに次々と新たなスレッドが起動したら重すぎて困ります
プロセス起動よりは軽いとはいえスレッド起動はかなりのコストがかかります
だからマルチスレッドではなくシングルスレッドで動いています
このようにシングルスレッド内で並行プログラミングできるところが非同期プログラミングの良いところです
ブラウザ上で動いているJavaScriptはシングルスレッドですが
スレッド内で非同期に複数のタスクが動くのでGUIに対応出来ています
例えばマウスが動いたりクリックされたりするたびに次々と新たなスレッドが起動したら重すぎて困ります
プロセス起動よりは軽いとはいえスレッド起動はかなりのコストがかかります
だからマルチスレッドではなくシングルスレッドで動いています
このようにシングルスレッド内で並行プログラミングできるところが非同期プログラミングの良いところです
703デフォルトの名無しさん
2021/12/01(水) 08:19:28.96ID:SFGWVOvC これはサーバー側も同じです
今どきサーバーは数万のクライアント接続が同時に来ても捌けますが
これを数万のスレッド起動で実装したらリソースが足りず動きません
実際にサーバーが使用するスレッド数は最大でも使用CPUが同時実行できるスレッド数で8個とか16個などだけです
したがってそのスレッド各々が何千や何万のクライアントを相手に並行して非同期に処理しています
今どきサーバーは数万のクライアント接続が同時に来ても捌けますが
これを数万のスレッド起動で実装したらリソースが足りず動きません
実際にサーバーが使用するスレッド数は最大でも使用CPUが同時実行できるスレッド数で8個とか16個などだけです
したがってそのスレッド各々が何千や何万のクライアントを相手に並行して非同期に処理しています
704デフォルトの名無しさん
2021/12/01(水) 08:56:34.20ID:Zovg4aIt Windowsアプリの件はわかる気がするわ。
Wixdowsアプリ(イベントドリブン)はイベントのキャッチはシングルスレッドでやっているのでイベントの実行から終了は全て同期処理。
ただし、イベントの実処理(中身)は非同期で実行する(しているケースが多い)からイベントの実処理が終わらずとも次のイベントが実行されているってことなんじゃない?
イベントドリブンの認識間違ってたらごめんね
Wixdowsアプリ(イベントドリブン)はイベントのキャッチはシングルスレッドでやっているのでイベントの実行から終了は全て同期処理。
ただし、イベントの実処理(中身)は非同期で実行する(しているケースが多い)からイベントの実処理が終わらずとも次のイベントが実行されているってことなんじゃない?
イベントドリブンの認識間違ってたらごめんね
705デフォルトの名無しさん
2021/12/01(水) 10:40:28.38ID:oI4zTDt2 数学100点の人はgoやったら良いのでは
同期プログラムと同じ書き方で非同期になるよ
同期プログラムと同じ書き方で非同期になるよ
706デフォルトの名無しさん
2021/12/01(水) 11:14:17.47ID:SFGWVOvC >>705
同期プログラムと同じ書き方といっても局所的な表面上だけだからgoroutine間のやり取りや制御で理解できなくなると思われる
そして同期プログラムと同じ書き方という点ならばasync/awaitサポートする任意の言語でawaitを付ければ同期的にプログラミングできるわけだけどこれも彼には厳しいかも
同期プログラムと同じ書き方といっても局所的な表面上だけだからgoroutine間のやり取りや制御で理解できなくなると思われる
そして同期プログラムと同じ書き方という点ならばasync/awaitサポートする任意の言語でawaitを付ければ同期的にプログラミングできるわけだけどこれも彼には厳しいかも
707デフォルトの名無しさん
2021/12/01(水) 18:57:51.36ID:no3HGX5y posixシグナル完全対応。
708デフォルトの名無しさん
2021/12/01(水) 20:55:01.67ID:oI4zTDt2709デフォルトの名無しさん
2021/12/01(水) 21:05:34.73ID:oI4zTDt2 彼がしきりにアピールする東大の入試数学やセンター試験の出題範囲だとBASICがせいぜいだから
非同期やデータ構造に対する理解を求めるのが酷だったか
非同期やデータ構造に対する理解を求めるのが酷だったか
710デフォルトの名無しさん
2021/12/01(水) 22:03:37.03ID:sxQ1el+x 東大の品位を下げるようなことはやめてくれ
711デフォルトの名無しさん
2021/12/01(水) 23:31:46.90ID:Mcs7wCKf センターでBASIC出題って何年前よオイ
712デフォルトの名無しさん
2021/12/02(木) 01:07:51.06ID:VtvQmLxd 2015年まであったらしい
713デフォルトの名無しさん
2021/12/02(木) 02:35:29.16ID:nb2+kp22 >>704
イベントではなく、シングルスレッドでメッセージキューに溜まったメッセージを
1つづつ取りだして処理するので、1つのメッセージ処理実行中、同時に別のメッ
セージ処理が実行されることはないので、排他処理が要らない。
ところが、メッセージ処理の中で受信待ちとか発生するコードだと、タイムアウト等で
抜けるまでメッセージ処理が終了しないので、ウィンドウ再描画などのメッセージも
処理されず、見かけ上GUIが固まったようになる。
だから、通信とかは、マルチスレッド化する必要がある。 C/C++はOSが走ってない
ワンチップマイコンのソフト開発にも使われるので、言語仕様にスレッドを持ち込む
必要はないと思う。
イベントではなく、シングルスレッドでメッセージキューに溜まったメッセージを
1つづつ取りだして処理するので、1つのメッセージ処理実行中、同時に別のメッ
セージ処理が実行されることはないので、排他処理が要らない。
ところが、メッセージ処理の中で受信待ちとか発生するコードだと、タイムアウト等で
抜けるまでメッセージ処理が終了しないので、ウィンドウ再描画などのメッセージも
処理されず、見かけ上GUIが固まったようになる。
だから、通信とかは、マルチスレッド化する必要がある。 C/C++はOSが走ってない
ワンチップマイコンのソフト開発にも使われるので、言語仕様にスレッドを持ち込む
必要はないと思う。
714デフォルトの名無しさん
2021/12/02(木) 11:04:55.74ID:yooJVl// 関係ないけどautoが動的な型付けだと思ってたわ
auto = automaticだろ
名前負けしてんじゃねーよ
クソ言語か
auto = automaticだろ
名前負けしてんじゃねーよ
クソ言語か
715デフォルトの名無しさん
2021/12/02(木) 11:36:20.37ID:YNqR6oNM >>714
仕様で明確に定義されている以上、そんなアホな勘違いするやつが悪い。
仕様で明確に定義されている以上、そんなアホな勘違いするやつが悪い。
716デフォルトの名無しさん
2021/12/02(木) 13:28:19.92ID:gymk1AzN717デフォルトの名無しさん
2021/12/02(木) 13:37:53.33ID:1aORNnKD718デフォルトの名無しさん
2021/12/02(木) 15:03:03.48ID:2R2gcOCs Cのauto
C++のauto
本来の仕様は一緒のはずなのに使われ方が違ってて笑う
C++のauto
本来の仕様は一緒のはずなのに使われ方が違ってて笑う
719デフォルトの名無しさん
2021/12/02(木) 17:16:10.79ID:RD57FJl6 だって誰も使わなかったし……
720デフォルトの名無しさん
2021/12/02(木) 17:21:01.57ID:BMPRSKoA 次は register がつぶされる番ですねっ
721デフォルトの名無しさん
2021/12/02(木) 17:29:10.36ID:tUkQvs14 >>718
そんな事で笑ってたらC/C++を覚えるまでに笑いすぎて死ぬぞ
そんな事で笑ってたらC/C++を覚えるまでに笑いすぎて死ぬぞ
722デフォルトの名無しさん
2021/12/02(木) 20:09:00.51ID:3TzX18xa >>415-416 シークする必要どうのこうの
>>583 アクセス用にArrayListを使う例
この辺↑の話題のやつを実装してみた
Rc<RefCell>をまず共有しておいて、中身へのborrow()や
borrow_mut()は最小限の時間で行えば十分じゃないかな? ダメ?
実行時にうまく中身を借用できているかは使う人次第ってことになる
https://ideone.com/bd0cFx
・注意:双方向リストだけど循環参照は未解決のまま
・注意:要素への参照を使っての操作はリスト側には未反映
(front, backを正しく再設定し直したりはしないということ)
(両端の要素の外側に追加したときとかおかしくなるはず)
・手元の1.8.0で主に動作チェック
・基本的によく分かってないので妙な箇所があるはず
・イテレータを提供したかったがよく分からなかったので諦めた
・fmt::Debug for LinkedList<T>は本来はもっとスッキリ書けるはず
・push_prev(&self, h)などが何も返さないのは、selfを返すかhを返すか
どっちを返すのが自然なのかという判断に迷って決め切れなかったため
>>583 アクセス用にArrayListを使う例
この辺↑の話題のやつを実装してみた
Rc<RefCell>をまず共有しておいて、中身へのborrow()や
borrow_mut()は最小限の時間で行えば十分じゃないかな? ダメ?
実行時にうまく中身を借用できているかは使う人次第ってことになる
https://ideone.com/bd0cFx
・注意:双方向リストだけど循環参照は未解決のまま
・注意:要素への参照を使っての操作はリスト側には未反映
(front, backを正しく再設定し直したりはしないということ)
(両端の要素の外側に追加したときとかおかしくなるはず)
・手元の1.8.0で主に動作チェック
・基本的によく分かってないので妙な箇所があるはず
・イテレータを提供したかったがよく分からなかったので諦めた
・fmt::Debug for LinkedList<T>は本来はもっとスッキリ書けるはず
・push_prev(&self, h)などが何も返さないのは、selfを返すかhを返すか
どっちを返すのが自然なのかという判断に迷って決め切れなかったため
723デフォルトの名無しさん
2021/12/02(木) 21:02:35.79ID:ymuOgB5E724デフォルトの名無しさん
2021/12/02(木) 21:38:58.00ID:7kQFmmWN c10kはリソース問題だからブラウザサイドでも同じだよな
5chのページとか見ると多数の広告やら何やら大量にコネクション貼りに行くけど非同期で並行にシングルスレッドでも余裕で可能
これが同期プログラミングしかできない人が作ると数十のコネクションに数十のスレッドを無駄に使うか
もしくはシングルスレッドで1つずつ順に時間をかけるかのどちらかとなる
5chのページとか見ると多数の広告やら何やら大量にコネクション貼りに行くけど非同期で並行にシングルスレッドでも余裕で可能
これが同期プログラミングしかできない人が作ると数十のコネクションに数十のスレッドを無駄に使うか
もしくはシングルスレッドで1つずつ順に時間をかけるかのどちらかとなる
725デフォルトの名無しさん
2021/12/02(木) 21:47:37.10ID:AzIeaNjo 広告アクセスに時間がかかるなんてのはc10kと全然関係ないだろう
726デフォルトの名無しさん
2021/12/02(木) 22:21:10.00ID:UYYLW8tE コネクション多数確立するという意味では同じだがC10Kと比較するのはおおげさすぎる
今時のブラウザは非同期処理の塊だろうからもっと良い例あるのでは
今時のブラウザは非同期処理の塊だろうからもっと良い例あるのでは
727デフォルトの名無しさん
2021/12/02(木) 22:30:51.78ID:E1OmpA3W ブラウザではそもそもHTML5の登場までマルチスレッド自体使えなかったし
そんな中でもAjaxでイベントによる非同期処理は要求されたし
ブラウザjsに関して言えばマルチスレッドのオーバーヘッドに耐えられず必要に駆られてっていう理由ではなく
従来のイベント非同期をPromiseで簡便に書けて、async/awaitでもっと簡便に書けて喜ばれた、というのが正しい理由でしょうね
そんな中でもAjaxでイベントによる非同期処理は要求されたし
ブラウザjsに関して言えばマルチスレッドのオーバーヘッドに耐えられず必要に駆られてっていう理由ではなく
従来のイベント非同期をPromiseで簡便に書けて、async/awaitでもっと簡便に書けて喜ばれた、というのが正しい理由でしょうね
728デフォルトの名無しさん
2021/12/02(木) 22:41:56.03ID:mlkfy4i9729デフォルトの名無しさん
2021/12/02(木) 22:45:23.47ID:b1gognmn どこかのスレで見たグリーンスレッド知らないおじさん?
730722
2021/12/03(金) 00:10:46.04ID:tTDO4F9c731デフォルトの名無しさん
2021/12/03(金) 00:22:36.68ID:aPplovFu >>722
リスト構造ってほとんど使わんなぁ。 C++だとインスタンスの配列じゃなくて、
インスタンスへのポインタ配列を使えば、配列サイズの拡張に伴う領域確保とコピー
が行われるのは、配列要素であるポインタだけなので、要素数が増えようが、複雑な
オブジェクトだろうが、処理時間は最小限で済む。
リスト構造の欠点はソートに弱いこと。 オブジェクトインスタンスへのポインタ配列
ならソートの場合でも、ソート対象はポインタの並び替えだけで、ポインタが指す
オブジェクトのインスタンスには一切触らない(コピーや再配置は行わない)で済む。
「100日後に退職する47歳」に出てくる「クイックソートの計算量」なんて質問をする
面接官は、記憶力が全ての学力試験が産んだ馬鹿でしかない。 現実問題としては、
ソートする必要がある時はソートしなければならない。 聞くべきは『効率的にソート
するには、どんなデータ構造を採用すべきか』である。
リスト構造ってほとんど使わんなぁ。 C++だとインスタンスの配列じゃなくて、
インスタンスへのポインタ配列を使えば、配列サイズの拡張に伴う領域確保とコピー
が行われるのは、配列要素であるポインタだけなので、要素数が増えようが、複雑な
オブジェクトだろうが、処理時間は最小限で済む。
リスト構造の欠点はソートに弱いこと。 オブジェクトインスタンスへのポインタ配列
ならソートの場合でも、ソート対象はポインタの並び替えだけで、ポインタが指す
オブジェクトのインスタンスには一切触らない(コピーや再配置は行わない)で済む。
「100日後に退職する47歳」に出てくる「クイックソートの計算量」なんて質問をする
面接官は、記憶力が全ての学力試験が産んだ馬鹿でしかない。 現実問題としては、
ソートする必要がある時はソートしなければならない。 聞くべきは『効率的にソート
するには、どんなデータ構造を採用すべきか』である。
732デフォルトの名無しさん
2021/12/03(金) 00:34:51.88ID:LOLVZOda リスト構造も結局のところポインタやん
733デフォルトの名無しさん
2021/12/03(金) 00:38:41.22ID:aPplovFu >>697
GUIスレッドの裏で動く、通信専用のワーカスレッドを1つ作成して、順番に1000個
のサーバヘアクセスに行くのが簡単かつ現実的じゃないかな。
むろんコア数を調べてワーカスレッド数の上限を可変にしてもいいが、アクセス先
リストの消し込みやエラー処理とか自動リトライとか面倒になるし、そこらを頑張っ
たところで、実際のところほとんどの場合は回線速度で頭打ちになる。
それと、たとえスレッドが1000個作れても、実際の環境では、経由するルータや
相手サーバ側の制限などで、同じIPアドレスから、同時に1000個の通信セッション
が張れないことの方が多い。
GUIスレッドの裏で動く、通信専用のワーカスレッドを1つ作成して、順番に1000個
のサーバヘアクセスに行くのが簡単かつ現実的じゃないかな。
むろんコア数を調べてワーカスレッド数の上限を可変にしてもいいが、アクセス先
リストの消し込みやエラー処理とか自動リトライとか面倒になるし、そこらを頑張っ
たところで、実際のところほとんどの場合は回線速度で頭打ちになる。
それと、たとえスレッドが1000個作れても、実際の環境では、経由するルータや
相手サーバ側の制限などで、同じIPアドレスから、同時に1000個の通信セッション
が張れないことの方が多い。
734デフォルトの名無しさん
2021/12/03(金) 00:40:38.11ID:RidNMi7I n番目の要素とm番目の要素を入れ替えるのに
配列だとポインタの読み込み2回、書き換え2回で済むのに対し
単方向リンクリストだと読み込みmax(n, m)+4回、書き換え4回必要になるからこれだけでかなりの差が生じる
配列だとポインタの読み込み2回、書き換え2回で済むのに対し
単方向リンクリストだと読み込みmax(n, m)+4回、書き換え4回必要になるからこれだけでかなりの差が生じる
735デフォルトの名無しさん
2021/12/03(金) 00:44:57.19ID:aPplovFu >>732
配列と違って、リスト構造を構成する各要素は、メモリ空間上に隣接して配置されて
いないのでqsort()ではソートできない。 あと、リスト内に循環参照がないとしても、
リストをバラす際にコストが掛かる。
配列と違って、リスト構造を構成する各要素は、メモリ空間上に隣接して配置されて
いないのでqsort()ではソートできない。 あと、リスト内に循環参照がないとしても、
リストをバラす際にコストが掛かる。
736デフォルトの名無しさん
2021/12/03(金) 02:01:34.62ID:rUbWPynB >>731
まあメモリが安く大容量になりましたからね…
まあメモリが安く大容量になりましたからね…
737デフォルトの名無しさん
2021/12/03(金) 02:06:12.08ID:7zfb8kOc >>736
QZちーす
QZちーす
738デフォルトの名無しさん
2021/12/03(金) 02:08:33.95ID:rUbWPynB >>735
リストのソートにはコムソートが容易に適用できたと記憶しています、ほぼO(NlogN)
https://mevius.5ch.net/test/read.cgi/tech/1434079972/107
リストのソートにはコムソートが容易に適用できたと記憶しています、ほぼO(NlogN)
https://mevius.5ch.net/test/read.cgi/tech/1434079972/107
739デフォルトの名無しさん
2021/12/03(金) 05:25:43.24ID:nNIjH1TY740デフォルトの名無しさん
2021/12/03(金) 05:44:07.66ID:nNIjH1TY >>733
> 通信専用のワーカスレッドを1つ作成して、
> 順番に1000個のサーバヘアクセスに行くのが簡単かつ現実的じゃないかな。
それは昔の同期プログラミングのマズいやり方でとてつもなく遅くなってしまう
> 経由するルータや相手サーバ側の制限などで、
> 同じIPアドレスから、同時に1000個の通信セッションが張れないことの方が多い。
経由する普通のルータにそんな制限はないです
1000ヶ所へ取りに行くという話だから相手サーバー側には各々1つのコネクションしか貼られないため
通信セッションが張れないということもありません
> そこらを頑張ったところで、実際のところほとんどの場合は回線速度で頭打ちになる。
たった1000個でそんなことは起きません
数KBの1000倍は数MBですから
> 通信専用のワーカスレッドを1つ作成して、
> 順番に1000個のサーバヘアクセスに行くのが簡単かつ現実的じゃないかな。
それは昔の同期プログラミングのマズいやり方でとてつもなく遅くなってしまう
> 経由するルータや相手サーバ側の制限などで、
> 同じIPアドレスから、同時に1000個の通信セッションが張れないことの方が多い。
経由する普通のルータにそんな制限はないです
1000ヶ所へ取りに行くという話だから相手サーバー側には各々1つのコネクションしか貼られないため
通信セッションが張れないということもありません
> そこらを頑張ったところで、実際のところほとんどの場合は回線速度で頭打ちになる。
たった1000個でそんなことは起きません
数KBの1000倍は数MBですから
741デフォルトの名無しさん
2021/12/03(金) 08:06:35.94ID:aPplovFu742デフォルトの名無しさん
2021/12/03(金) 08:48:42.45ID:10RvFZJW >>739
そりゃC++だから軽いわな
でもってシングルスレッドかマルチスレッドかの話には基本的に関係ないわな
JSのシングルスレット非同期モデルで対応できるのは
I/O待ち等でCPUがidleになる場合か
ホスト環境が提供する別のプロセスやスレッドに処理をオフローディングできる場合だけ
デスクトップアプリでそこそこ重いSQLiteへの読み書きなんかをJS実行スレッドでやれば非同期だろうがGUIに顕著な影響がでる
だからJS使ってても当然マルチスレッド化する
そりゃC++だから軽いわな
でもってシングルスレッドかマルチスレッドかの話には基本的に関係ないわな
JSのシングルスレット非同期モデルで対応できるのは
I/O待ち等でCPUがidleになる場合か
ホスト環境が提供する別のプロセスやスレッドに処理をオフローディングできる場合だけ
デスクトップアプリでそこそこ重いSQLiteへの読み書きなんかをJS実行スレッドでやれば非同期だろうがGUIに顕著な影響がでる
だからJS使ってても当然マルチスレッド化する
743デフォルトの名無しさん
2021/12/03(金) 09:01:39.32ID:aPplovFu >>740
> それは昔の同期プログラミングのマズいやり方でとてつもなく遅くなってしまう
実際、書いたことある? Webサイトの複数ページを移動しながらスクレイピング
して、ダウンロードファイルのURLを取得し、HTTPまたはHTTPSでファイルを順次
自動ダウンロードする自分専用ソフトを書いて使ってるけど、ダウンロード中に
GUIのプログレスバーや転送量/速度などの更新や、キャンセルボタン等の関係から、
GUIスレッドと通信スレッドに分けてるけど、速度はほぼ回線速度と相手サーバーの
応答に依存だよ。
> 経由する普通のルータにそんな制限はないです
> 1000ヶ所へ取りに行くという話だから相手サーバー側には各々1つのコネクション
> しか貼られないため通信セッションが張れないということもありません
確かに1000個のファイル取得先が別々なら、相手サーバーのコネクションは1つだけ
でセッション数も制限を受けないけど、2000を超えると安物や古いルーターだとNAT
テーブルの制限に引っ掛かる気がする。
> たった1000個でそんなことは起きません
> 数KBの1000倍は数MBですから
そんな制約あったっけ?
ちなみに自分が書いたアプリでダウンロードしているファイルは、小さいもので数百KB
大きいと+数MBくらいで、1000個(総容量約3.5〜3.7GB)ダウンロードすると2時間〜
3時間くらいかな。
回線はSoftbank Air(非5G)で、今の時間帯だとGoogleのSpeedtestで、ダウンロードが
20Mbpsくらい。
> それは昔の同期プログラミングのマズいやり方でとてつもなく遅くなってしまう
実際、書いたことある? Webサイトの複数ページを移動しながらスクレイピング
して、ダウンロードファイルのURLを取得し、HTTPまたはHTTPSでファイルを順次
自動ダウンロードする自分専用ソフトを書いて使ってるけど、ダウンロード中に
GUIのプログレスバーや転送量/速度などの更新や、キャンセルボタン等の関係から、
GUIスレッドと通信スレッドに分けてるけど、速度はほぼ回線速度と相手サーバーの
応答に依存だよ。
> 経由する普通のルータにそんな制限はないです
> 1000ヶ所へ取りに行くという話だから相手サーバー側には各々1つのコネクション
> しか貼られないため通信セッションが張れないということもありません
確かに1000個のファイル取得先が別々なら、相手サーバーのコネクションは1つだけ
でセッション数も制限を受けないけど、2000を超えると安物や古いルーターだとNAT
テーブルの制限に引っ掛かる気がする。
> たった1000個でそんなことは起きません
> 数KBの1000倍は数MBですから
そんな制約あったっけ?
ちなみに自分が書いたアプリでダウンロードしているファイルは、小さいもので数百KB
大きいと+数MBくらいで、1000個(総容量約3.5〜3.7GB)ダウンロードすると2時間〜
3時間くらいかな。
回線はSoftbank Air(非5G)で、今の時間帯だとGoogleのSpeedtestで、ダウンロードが
20Mbpsくらい。
744デフォルトの名無しさん
2021/12/03(金) 09:06:26.24ID:aPplovFu ちなみに、HTTP/HTTPSで速度を上げるには、市販ダウンローダーが実装している、
分割パート毎にマルチセッションで同時ダウンロードして連結する方法もあるが、
ダウンロード先が同じサーバーで、アクセス遮断されないようにというのもあって
1セッションでのダウンロードにしてる。
本当はロボットであることを覚られないよう、ファイル単位のダウンロード完了後に
ランダムな秒数の待ち時間をいれるべきだろうが、今のところやってない。
分割パート毎にマルチセッションで同時ダウンロードして連結する方法もあるが、
ダウンロード先が同じサーバーで、アクセス遮断されないようにというのもあって
1セッションでのダウンロードにしてる。
本当はロボットであることを覚られないよう、ファイル単位のダウンロード完了後に
ランダムな秒数の待ち時間をいれるべきだろうが、今のところやってない。
745デフォルトの名無しさん
2021/12/03(金) 14:35:28.91ID:fdWJSRDO >>743
> 20Mbpsくらい。
ということは、毎秒2MBくらいのダウンロード能力があり、1分あたりでは120MB、1時間あたり7GBくらいはダウンロードできるということになる
> 1000個(総容量約3.5〜3.7GB)ダウンロードすると2時間〜
> 3時間くらいかな。
めちゃくちゃ遅くね?
> 20Mbpsくらい。
ということは、毎秒2MBくらいのダウンロード能力があり、1分あたりでは120MB、1時間あたり7GBくらいはダウンロードできるということになる
> 1000個(総容量約3.5〜3.7GB)ダウンロードすると2時間〜
> 3時間くらいかな。
めちゃくちゃ遅くね?
746デフォルトの名無しさん
2021/12/03(金) 14:55:37.25ID:9vhBCv/o そもそもlibevとかlibeventとかはCで書かれたライブラリでC++用のリンクヘッダもあるけどNodeやRustの
専売特許じゃない、むしろ後発でC10k、promise、async/awaitだとかいってるアホは市んでほしい…
C/C++では現状コールバック関数でしかない。もちろんC++22とか出てきてないものは除く
専売特許じゃない、むしろ後発でC10k、promise、async/awaitだとかいってるアホは市んでほしい…
C/C++では現状コールバック関数でしかない。もちろんC++22とか出てきてないものは除く
747デフォルトの名無しさん
2021/12/03(金) 15:13:11.54ID:RidNMi7I 非同期プログラミングの先達という意味ではそうだけど
callback hell をなんとかするために生まれてきた promise や async/await にはそれはそれで価値を認めるべき
callback hell をなんとかするために生まれてきた promise や async/await にはそれはそれで価値を認めるべき
748デフォルトの名無しさん
2021/12/03(金) 15:17:25.21ID:aPplovFu >>745
時間帯によって速度は変わる。 MicrosoftからWindows 10のISOファイルを1つ
(ほぼ容量同じ)をWebブラウザで落としても、30分強で終わるどころか、ほぼ同じ
くらい掛かる。
時間帯によって速度は変わる。 MicrosoftからWindows 10のISOファイルを1つ
(ほぼ容量同じ)をWebブラウザで落としても、30分強で終わるどころか、ほぼ同じ
くらい掛かる。
749デフォルトの名無しさん
2021/12/03(金) 15:25:42.29ID:fdWJSRDO >>748
いや、それってMSのサーバ能力で律速されてるってことでしょ
そもそも
>> 通信専用のワーカスレッドを1つ作成して、
>> 順番に1000個のサーバヘアクセスに行くのが簡単かつ現実的じゃないかな。
>
> それは昔の同期プログラミングのマズいやり方でとてつもなく遅くなってしまう
に対する反論を試みようとしてるんだから、相手側の能力で律速するのなら「じゃやっぱマズいやり方だよね」ってことになるだろ
いや、それってMSのサーバ能力で律速されてるってことでしょ
そもそも
>> 通信専用のワーカスレッドを1つ作成して、
>> 順番に1000個のサーバヘアクセスに行くのが簡単かつ現実的じゃないかな。
>
> それは昔の同期プログラミングのマズいやり方でとてつもなく遅くなってしまう
に対する反論を試みようとしてるんだから、相手側の能力で律速するのなら「じゃやっぱマズいやり方だよね」ってことになるだろ
750デフォルトの名無しさん
2021/12/03(金) 15:35:13.37ID:fdWJSRDO まぁ、Softbank Airなんて回線で、数GBもダウンロードすなってのもあるがw
751デフォルトの名無しさん
2021/12/03(金) 15:52:47.63ID:9vhBCv/o 別にasyncはコールバック関数を何とかするために生まれた訳じゃない、勘違い甚だしいw
同期関数という普通の関数と、見た目上は同様に見えるように考えられただけで価値なんてほんの少ししかない。
むしろこのキーワードの導入によりコードの汚染が酷く、さらに言うならI/Oバウンドや*nix割り込みベースや
そしてCPUバウンドな非同期(≒スレッド)と統一的に扱えないために複雑なフレームワークを導入する羽目になる。
一般的には、I/Oバウンドなブロック単位のI/O読み書き待ちでコールバックされることだけを主眼に置いて設計されて
しまったがために多くの言語で採用されているが、スレッドや軽量ルーチェンとは互換性ない場合が多い。
ただ副次的にコールバック関数のネストが解決されているように見えるだけに過ぎない。
同期関数という普通の関数と、見た目上は同様に見えるように考えられただけで価値なんてほんの少ししかない。
むしろこのキーワードの導入によりコードの汚染が酷く、さらに言うならI/Oバウンドや*nix割り込みベースや
そしてCPUバウンドな非同期(≒スレッド)と統一的に扱えないために複雑なフレームワークを導入する羽目になる。
一般的には、I/Oバウンドなブロック単位のI/O読み書き待ちでコールバックされることだけを主眼に置いて設計されて
しまったがために多くの言語で採用されているが、スレッドや軽量ルーチェンとは互換性ない場合が多い。
ただ副次的にコールバック関数のネストが解決されているように見えるだけに過ぎない。
752デフォルトの名無しさん
2021/12/03(金) 19:35:25.25ID:3ner7aMO C10Kというけど、いま使ってるパソコンだってスレッドが数千あるのに、クライアントが1万程度でいまどき問題ある?
753デフォルトの名無しさん
2021/12/03(金) 20:15:24.75ID:XIVj35HM 有線LAN なら、200Mbps ぐらい出る。
無線にすると、10〜20
無線スポットから離れると、1まで落ちる
無線にすると、10〜20
無線スポットから離れると、1まで落ちる
754デフォルトの名無しさん
2021/12/03(金) 20:20:25.08ID:XIVj35HM Elixir では、10万のプロセスを起動できる
これは、OS のプロセス・スレッドじゃないから。
Erlang 内の小プロセスだから出来る
これは、OS のプロセス・スレッドじゃないから。
Erlang 内の小プロセスだから出来る
755デフォルトの名無しさん
2021/12/03(金) 20:32:10.63ID:3ner7aMO そんなに起動して何に使うの?
756デフォルトの名無しさん
2021/12/03(金) 20:45:06.44ID:RinLdTWR ルーチェン
757デフォルトの名無しさん
2021/12/03(金) 22:07:37.69ID:xM1Kf0e8 >>751
非同期プログラミングの話をしているだけなのにそんなasync/awaitに限定するのがおかしいのではないかね
さらにいえばasync/awaitの話とpromise/futureの話を同類に捉えているからちゃんと理解していないのでは?
非同期関数をなにか特殊なもののように捉えているのも怪しい
非同期ブログラミングとは同期ブロッキングI/Oによる非効率で無駄な方法を排除するプログラミングであって
昔も今も中心部分にselectやepoll等のシステムコールを核とするループすなわち高度化した時のスケジューラーで成り立っている
そして読み書き可能になったら読み書きをするという極めて自然なプログラミング
もちろんこのスケジューラー部分で割り込みやタイマー含めて共通管理できるため「相性が悪く複雑になる」というのも間違いだ
もちろん読み書き可能になったら教えて!と最初に登録するところから始まるわけだから
読み書き可能になったぜ!と教えてもらう部分がコールバックとなるのは当然の話
だからそれをまとめて包んだ非同期関数は当然コールバックとなりI/O待ちブロックされる同期関数より極めて効率が良い
promise/futureはこの部分のインターフェース部分だけを抽象化しただけに過ぎず
この中身は単なる状態管理だから具体的なI/Oやタイマー等と関係なく共通して使える点もプログラミングの利便性を向上させている
そしてこれ自体はコールバックを無くしているわけではなく例えばクロージャを渡すメソッドなどを用意することでコードの見た目を改善している
これで非同期関数のインタフェースとして(直接)コールバック系と(間接に行う)promise/future系((およびその両対応))に分かれた
以上ここまでの話は生のC言語でも普通にプログラミング可能な話である (メソッド呼び出しを除く)
もちろんスレッドなんか存在しない環境でもシングルスレッドにて並行に動作するの非同期プログラミング
当然ながらマルチスレッドでも同じように動作させられる
非同期プログラミングの話をしているだけなのにそんなasync/awaitに限定するのがおかしいのではないかね
さらにいえばasync/awaitの話とpromise/futureの話を同類に捉えているからちゃんと理解していないのでは?
非同期関数をなにか特殊なもののように捉えているのも怪しい
非同期ブログラミングとは同期ブロッキングI/Oによる非効率で無駄な方法を排除するプログラミングであって
昔も今も中心部分にselectやepoll等のシステムコールを核とするループすなわち高度化した時のスケジューラーで成り立っている
そして読み書き可能になったら読み書きをするという極めて自然なプログラミング
もちろんこのスケジューラー部分で割り込みやタイマー含めて共通管理できるため「相性が悪く複雑になる」というのも間違いだ
もちろん読み書き可能になったら教えて!と最初に登録するところから始まるわけだから
読み書き可能になったぜ!と教えてもらう部分がコールバックとなるのは当然の話
だからそれをまとめて包んだ非同期関数は当然コールバックとなりI/O待ちブロックされる同期関数より極めて効率が良い
promise/futureはこの部分のインターフェース部分だけを抽象化しただけに過ぎず
この中身は単なる状態管理だから具体的なI/Oやタイマー等と関係なく共通して使える点もプログラミングの利便性を向上させている
そしてこれ自体はコールバックを無くしているわけではなく例えばクロージャを渡すメソッドなどを用意することでコードの見た目を改善している
これで非同期関数のインタフェースとして(直接)コールバック系と(間接に行う)promise/future系((およびその両対応))に分かれた
以上ここまでの話は生のC言語でも普通にプログラミング可能な話である (メソッド呼び出しを除く)
もちろんスレッドなんか存在しない環境でもシングルスレッドにて並行に動作するの非同期プログラミング
当然ながらマルチスレッドでも同じように動作させられる
758デフォルトの名無しさん
2021/12/03(金) 22:08:57.91ID:xM1Kf0e8 >>757の続き
一方でasync/awaitは全く別の話
これだけはプログラミング言語による支援がないと実現できない
そしてこの導入目的は同期プログラミングしか出来ない人たち向けも含めて楽に非同期プログラミングするためであり
asyncと宣言した関数などの中ではawaitを付ければ見かけ上は同期プログラミングと同じ記述ができる!という改革
これによりようやく真にコールバックが利用側からは消えたので「コールバックを無くすため」というのも間違ってはいない
ではasync/await導入で非同期関数側はどう変わったか?
実は全く変わっていない、が正解
そのままpromise/futureを返す非同期関数と全く同じそのままである
つまりasync/awaitは非同期関数を利用する側だけの話という点が重要
以上で>>751氏も非同期プログラミングを正しく理解できるであろうか?
一方でasync/awaitは全く別の話
これだけはプログラミング言語による支援がないと実現できない
そしてこの導入目的は同期プログラミングしか出来ない人たち向けも含めて楽に非同期プログラミングするためであり
asyncと宣言した関数などの中ではawaitを付ければ見かけ上は同期プログラミングと同じ記述ができる!という改革
これによりようやく真にコールバックが利用側からは消えたので「コールバックを無くすため」というのも間違ってはいない
ではasync/await導入で非同期関数側はどう変わったか?
実は全く変わっていない、が正解
そのままpromise/futureを返す非同期関数と全く同じそのままである
つまりasync/awaitは非同期関数を利用する側だけの話という点が重要
以上で>>751氏も非同期プログラミングを正しく理解できるであろうか?
759デフォルトの名無しさん
2021/12/03(金) 22:13:40.85ID:lnUl70HN もはやC++もRustも関係無いマウント合戦になってら
760デフォルトの名無しさん
2021/12/03(金) 23:22:05.85ID:9uRuF5M7 もしかしてずーっと同じ人が暴れてんですか?
761デフォルトの名無しさん
2021/12/03(金) 23:31:58.32ID:DEDgCilv どうしようもない二人が残っちゃったね
掃き溜め
掃き溜め
762デフォルトの名無しさん
2021/12/03(金) 23:40:57.15ID:C/q0fsga Goスレでも同じC#おじさんがRust/Goを学びかけて暴れてたから同じやつ
「真にコールバックが利用側からは消えた」なんてコールバック関数が消えたことはない。お前はHello worldでも
書いて満足してろwawaitの話とpromiseを同列に語ってんのもお前、「インターフェース部分だけを抽象化」なんて
RustにもC++にも無いしC#おじさん臭さが露骨に出てる
「真にコールバックが利用側からは消えた」なんてコールバック関数が消えたことはない。お前はHello worldでも
書いて満足してろwawaitの話とpromiseを同列に語ってんのもお前、「インターフェース部分だけを抽象化」なんて
RustにもC++にも無いしC#おじさん臭さが露骨に出てる
763デフォルトの名無しさん
2021/12/03(金) 23:59:21.97ID:zNp8n16A >当然ながらマルチスレッドでも同じように動作させられる
そんなのはC#のような一部であり、多くのasyncを有する言語ではスレッド境界は越えられないのでそれぞれの
スレッドがイベントループとイベントキューを有する。これはAスレッドで起こったイベントはBスレッドには
伝わらず”同じように動作させられる”なんてことは無い、実行の順序制御も当然バラバラ
C++20でもコルーチェンたるco_return, co_await, co_yieldがあるのに、鬼の首を取ったようにRustなどの
触りだけ触れていて優位性を語ってるアホはまじ市んでほしい
そんなのはC#のような一部であり、多くのasyncを有する言語ではスレッド境界は越えられないのでそれぞれの
スレッドがイベントループとイベントキューを有する。これはAスレッドで起こったイベントはBスレッドには
伝わらず”同じように動作させられる”なんてことは無い、実行の順序制御も当然バラバラ
C++20でもコルーチェンたるco_return, co_await, co_yieldがあるのに、鬼の首を取ったようにRustなどの
触りだけ触れていて優位性を語ってるアホはまじ市んでほしい
764デフォルトの名無しさん
2021/12/04(土) 01:46:20.63ID:aNU60Xul 最近は、一度もWindowsプログラミングしたこと無い人が増えてるからな。
Windowsは伝統的に非同期をほとんど使わないことを知らない人が多いらしい。
Windowsは伝統的に非同期をほとんど使わないことを知らない人が多いらしい。
765デフォルトの名無しさん
2021/12/04(土) 01:54:42.66ID:RzAYiznV >>761
もともとrustスレで暴れてた人を隔離するために立てられたスレだから最初から掃きだめ
もともとrustスレで暴れてた人を隔離するために立てられたスレだから最初から掃きだめ
766デフォルトの名無しさん
2021/12/04(土) 03:17:48.45ID:6dkLKknu >>763
>>当然ながらマルチスレッドでも同じように動作させられる
>そんなのはC#のような一部であり、
>多くのasyncを有する言語ではスレッド境界は越えられない
え??
Rustでは当然出来ますけど
>スレッド境界は越えられないので
>それぞれのスレッドがイベントループとイベントキューを有する。
え??
Rustではスレッド境界を超えつつ、それぞれのスレッドがイベントループとイベントキューを有することも出来ますけど
>これはAスレッドで起こったイベントはBスレッドには伝わらず
そこだけは正しいですw
しかし暇になったスレッドがいわゆるワークスティーリングすなわち他スレッドからタスクを奪ってからイベント登録しますから、
>”同じように動作させられる”なんてことは無い
同じように別スレッドで動作を継続できます
>実行の順序制御も当然バラバラ
え??
非同期だからバラしたタスク間の実行順序は例えば通信相手次第で変わりますけど
それは単純なワンタスク同期なマルチスレッドの時も同じです
実行の順序制御が必要な部分のみ制御の意味での同期を行うのも同じです
例えば10個のタスクで並行して10ヵ所からデータを取得してその平均を出すならば平均を出す直前で10個全てのタスクの完了を待つだけです
非同期プログラミングしたことがない人は間違った思い込み妄想だらけで大変
>>当然ながらマルチスレッドでも同じように動作させられる
>そんなのはC#のような一部であり、
>多くのasyncを有する言語ではスレッド境界は越えられない
え??
Rustでは当然出来ますけど
>スレッド境界は越えられないので
>それぞれのスレッドがイベントループとイベントキューを有する。
え??
Rustではスレッド境界を超えつつ、それぞれのスレッドがイベントループとイベントキューを有することも出来ますけど
>これはAスレッドで起こったイベントはBスレッドには伝わらず
そこだけは正しいですw
しかし暇になったスレッドがいわゆるワークスティーリングすなわち他スレッドからタスクを奪ってからイベント登録しますから、
>”同じように動作させられる”なんてことは無い
同じように別スレッドで動作を継続できます
>実行の順序制御も当然バラバラ
え??
非同期だからバラしたタスク間の実行順序は例えば通信相手次第で変わりますけど
それは単純なワンタスク同期なマルチスレッドの時も同じです
実行の順序制御が必要な部分のみ制御の意味での同期を行うのも同じです
例えば10個のタスクで並行して10ヵ所からデータを取得してその平均を出すならば平均を出す直前で10個全てのタスクの完了を待つだけです
非同期プログラミングしたことがない人は間違った思い込み妄想だらけで大変
767デフォルトの名無しさん
2021/12/04(土) 03:24:28.87ID:54seiSNt Rust使ったこと無いけど健全なマクロはいいなぁと思う。
768デフォルトの名無しさん
2021/12/04(土) 03:28:16.65ID:aNU60Xul 今言われているasync, awaitの「非同期」ってちょっと違うけど、意味的には擬似スレッドみたいな感じだな。
I/O全般というより、XHRやfetchやsocketのように遅いネットワーク通信を複数同時に待つ時に使う
時に便利な気がする。
nativeのファイルI/Oの場合、処理が完了するまで待つ方が便利だし、余計なことを考えなくて済むので
バグが少なくできるから、伝統的に同期方式を使うことが基本。
I/O全般というより、XHRやfetchやsocketのように遅いネットワーク通信を複数同時に待つ時に使う
時に便利な気がする。
nativeのファイルI/Oの場合、処理が完了するまで待つ方が便利だし、余計なことを考えなくて済むので
バグが少なくできるから、伝統的に同期方式を使うことが基本。
769デフォルトの名無しさん
2021/12/04(土) 03:36:51.75ID:aNU60Xul print "hello\n";
と書いた場合に、print文は端末(terminal)などの別プロセスでの処理が
完了するまで待つことが多く、実行完了するには時間が掛かるが、
これを一々非同期にして、print 文が完了するまでに別の処理をする、
というようなことはすべきじゃない。
一番いいのは、print 文が完了するまではそこで待機して、ちゃんと
それが完了してから次の文を実行すること。
つまり、同期的処理。
と書いた場合に、print文は端末(terminal)などの別プロセスでの処理が
完了するまで待つことが多く、実行完了するには時間が掛かるが、
これを一々非同期にして、print 文が完了するまでに別の処理をする、
というようなことはすべきじゃない。
一番いいのは、print 文が完了するまではそこで待機して、ちゃんと
それが完了してから次の文を実行すること。
つまり、同期的処理。
770デフォルトの名無しさん
2021/12/04(土) 03:52:52.03ID:6dkLKknu771デフォルトの名無しさん
2021/12/04(土) 04:12:46.09ID:aNU60Xul >>770
でもそのコード部分では見て無い場所で、イベントループに戻ってしまって、
別のイベントハンドラが起動してしまう可能性が生まれ、
せっかく通常のシングルスレッドプログラミングでは起きない良い特徴が失われる。
そのため、シングルスレッドなのに排他処理が必要となってしまう。
排他処理は間違うととても危険であって、プログラミングのかなり上級者でも
気を使う必要がある。
でもそのコード部分では見て無い場所で、イベントループに戻ってしまって、
別のイベントハンドラが起動してしまう可能性が生まれ、
せっかく通常のシングルスレッドプログラミングでは起きない良い特徴が失われる。
そのため、シングルスレッドなのに排他処理が必要となってしまう。
排他処理は間違うととても危険であって、プログラミングのかなり上級者でも
気を使う必要がある。
772デフォルトの名無しさん
2021/12/04(土) 04:28:23.02ID:6dkLKknu 見かけ上はどちらも関数処理完了まで待機する形で同じですが
「同期の関数を呼んだ場合」
→関数から戻って来るまでそのスレッドはブロックされる
「非同期の関数を呼んでawaitする場合」
→そのスレッドがブロックされることはなく他にタスクがあれば並行して実行される
>>771
いいえ
その場合はそのタイミングで並行して実行されたら困るタスクを持たなければいいだけです
○ その時は他に並行して実行されるタスクを持たない
○ 並行して実行されてもよいタスクだけを他に持つ
○ 並行して実行されるタスクの動作に制限がかかるようにロック等を持つ
✕ 並行して実行されたら困るタスクを対策なしに他に持つ
選択肢はたくさんあります
これがプログラミングです
「同期の関数を呼んだ場合」
→関数から戻って来るまでそのスレッドはブロックされる
「非同期の関数を呼んでawaitする場合」
→そのスレッドがブロックされることはなく他にタスクがあれば並行して実行される
>>771
いいえ
その場合はそのタイミングで並行して実行されたら困るタスクを持たなければいいだけです
○ その時は他に並行して実行されるタスクを持たない
○ 並行して実行されてもよいタスクだけを他に持つ
○ 並行して実行されるタスクの動作に制限がかかるようにロック等を持つ
✕ 並行して実行されたら困るタスクを対策なしに他に持つ
選択肢はたくさんあります
これがプログラミングです
773デフォルトの名無しさん
2021/12/04(土) 04:34:52.83ID:aNU60Xul >>772
Win32/MFC/WinForms/JavaのSwing/Android/ブラウザのJSで
プログラミングしたこと有る?
イベントループやイベントって自分で定義するものでは無いから
「タスクを持たないようにする」
っていうのは現実には不可能だぞ。
Win32/MFC/WinForms/JavaのSwing/Android/ブラウザのJSで
プログラミングしたこと有る?
イベントループやイベントって自分で定義するものでは無いから
「タスクを持たないようにする」
っていうのは現実には不可能だぞ。
774デフォルトの名無しさん
2021/12/04(土) 05:07:10.24ID:6dkLKknu >>773
もちろんRustでも自分でスケジューラを自作することは滅多になく
selectやpollなど使用のイベントループを自分で書くことはありません
それからここでのイベントとは当然selectやpollなどのイベントですから具体的にはファイルディスクリプタの読み書きOK等がイベントとなります
もちろんこの処理はスケジューラが担当するので自分で書かなくてもいいです
しかし新たなタスクを起こすかどうかはスレッドの時と同様にプログラマーの自由であり必要なら明示的に行います
JavaScriptの場合もイベントループを管轄するスケジューラはブラウザでもNode.jsでもシステムとして持っているため関知しなくてもよいです
ただしJavaScriptでは非同期関数を呼ぶこと自体が自動的にここでいう新たなタスクを起こすことになります
あとは例えばブラウザ自体が暗黙的に動作しているタスクとしてみなすことも出来てそのタスクから新たなタスクを発火することもあります
リスナー登録するタイプの利用時もそのパターンです
もちろんRustでも自分でスケジューラを自作することは滅多になく
selectやpollなど使用のイベントループを自分で書くことはありません
それからここでのイベントとは当然selectやpollなどのイベントですから具体的にはファイルディスクリプタの読み書きOK等がイベントとなります
もちろんこの処理はスケジューラが担当するので自分で書かなくてもいいです
しかし新たなタスクを起こすかどうかはスレッドの時と同様にプログラマーの自由であり必要なら明示的に行います
JavaScriptの場合もイベントループを管轄するスケジューラはブラウザでもNode.jsでもシステムとして持っているため関知しなくてもよいです
ただしJavaScriptでは非同期関数を呼ぶこと自体が自動的にここでいう新たなタスクを起こすことになります
あとは例えばブラウザ自体が暗黙的に動作しているタスクとしてみなすことも出来てそのタスクから新たなタスクを発火することもあります
リスナー登録するタイプの利用時もそのパターンです
775デフォルトの名無しさん
2021/12/04(土) 05:13:43.45ID:aNU60Xul >>774
MFC/WinForms/JavaのSwing/Androidなどでは、マウスイベントやキーボードイベント、
メニューイベントは基本的に常時イネーブル状態になったままにして使うので、await
してしまうと、それぞれのハンドラに普通に入ってしまう。
そうなるとロジックが破綻するので排他処理するか、awaitする直前に、
一々ハンドラを disable にして、awaitの次の行に来た時に enableにする
必要がある。そんなメンドクサイことすべきじゃ無いし、そもそもdisable
にするなら、非同期のメリットも無い。
そもそもGUIスレッドは、イベントハンドラの二重起動は禁止すべきとされている。
MFC/WinForms/JavaのSwing/Androidなどでは、マウスイベントやキーボードイベント、
メニューイベントは基本的に常時イネーブル状態になったままにして使うので、await
してしまうと、それぞれのハンドラに普通に入ってしまう。
そうなるとロジックが破綻するので排他処理するか、awaitする直前に、
一々ハンドラを disable にして、awaitの次の行に来た時に enableにする
必要がある。そんなメンドクサイことすべきじゃ無いし、そもそもdisable
にするなら、非同期のメリットも無い。
そもそもGUIスレッドは、イベントハンドラの二重起動は禁止すべきとされている。
776デフォルトの名無しさん
2021/12/04(土) 06:02:11.33ID:6dkLKknu >>775
プログラミング分野は無数にある中で
なぜそんな特殊な環境だけを唐突に持ち出すのかも含めて分かりません
先ずは適用可能な分野から始めて経験と知識を積んで的確に判断できるようになってから結論づければよいかと
プログラミング分野は無数にある中で
なぜそんな特殊な環境だけを唐突に持ち出すのかも含めて分かりません
先ずは適用可能な分野から始めて経験と知識を積んで的確に判断できるようになってから結論づければよいかと
777デフォルトの名無しさん
2021/12/04(土) 10:01:49.43ID:wGH9SwaY 数学の天才と言い切った手前、後に引けなくなってきたか
自分の触ったことのある範囲でいいから弁解しなくちゃ
もうリンクトリストなんてどうでもいい、無知の印象を払拭するのが第一
自分の触ったことのある範囲でいいから弁解しなくちゃ
もうリンクトリストなんてどうでもいい、無知の印象を払拭するのが第一
778デフォルトの名無しさん
2021/12/04(土) 16:50:56.54ID:Peev2Fa+ 天才と言いつつテスト100点としか言えてない時点で程度は知れて馬鹿にされてるんだから今更取り繕わなくて良いのに
779デフォルトの名無しさん
2021/12/04(土) 16:53:37.05ID:d5QmhWSv リンクリストの話はまだまだお聞きしたいと思っていますのに…
>>738 のリストのソートのご感想とか
>>738 のリストのソートのご感想とか
780デフォルトの名無しさん
2021/12/04(土) 16:55:24.53ID:d5QmhWSv >>778
数学や物理のテストは、B4 の白紙一枚をわたされて、これに回答とか証明を書け、みたいな感じですが、そんなテストで一度でも 100 点をとれるのなら、それはそれですごいとは思いますよ
数学や物理のテストは、B4 の白紙一枚をわたされて、これに回答とか証明を書け、みたいな感じですが、そんなテストで一度でも 100 点をとれるのなら、それはそれですごいとは思いますよ
781デフォルトの名無しさん
2021/12/04(土) 17:09:21.39ID:Peev2Fa+ >>780
引き合いに出してたのがセンター試験だったり東大入試だったりで大学入試の成績を誇るしかない人なんだなって思っていました
引き合いに出してたのがセンター試験だったり東大入試だったりで大学入試の成績を誇るしかない人なんだなって思っていました
782デフォルトの名無しさん
2021/12/04(土) 17:19:28.99ID:2kIdNGW4 RustのLinked Listは遅いからRustはクソ言語
という論理は成立しましたか?
という論理は成立しましたか?
783デフォルトの名無しさん
2021/12/04(土) 17:28:22.69ID:d5QmhWSv >>781
回答用紙の返却のない試験の結果がどうしてわかるのか疑問ですよね
回答用紙の返却のない試験の結果がどうしてわかるのか疑問ですよね
784デフォルトの名無しさん
2021/12/04(土) 17:40:33.98ID:EblMEd3X どっちも中途半端な知識しかないのに他人の指摘は聞かないから救いようがない
隔離スレ立てたやつグッジョブ!
隔離スレ立てたやつグッジョブ!
785デフォルトの名無しさん
2021/12/04(土) 18:40:15.11ID:4fIXFJG6786デフォルトの名無しさん
2021/12/04(土) 18:46:57.96ID:WC3n5yU/787デフォルトの名無しさん
2021/12/04(土) 18:49:24.09ID:d5QmhWSv >>785
Java の awt では、どこにメッセージループが隠れているのか、あわしろ氏に訊いていただけませんか?
Java の awt では、どこにメッセージループが隠れているのか、あわしろ氏に訊いていただけませんか?
788デフォルトの名無しさん
2021/12/04(土) 18:51:13.15ID:d5QmhWSv >>786
私の時代には、そういうのは転部転科でもしようとしない限りわからなかったかと、今は変わったんですね…
私の時代には、そういうのは転部転科でもしようとしない限りわからなかったかと、今は変わったんですね…
789デフォルトの名無しさん
2021/12/04(土) 18:51:48.09ID:4fIXFJG6790デフォルトの名無しさん
2021/12/04(土) 18:53:03.93ID:WC3n5yU/ >>788
そう
そう
791デフォルトの名無しさん
2021/12/04(土) 18:54:08.07ID:wGH9SwaY センター試験や東大入試は数学の天才を黙らせようとした人らが基準を示すため言い出したのであって
当の数学の天才は一度も何の試験かにすら言及していない
高校の定期試験ということもあり得る
当の数学の天才は一度も何の試験かにすら言及していない
高校の定期試験ということもあり得る
792デフォルトの名無しさん
2021/12/04(土) 18:58:45.03ID:d5QmhWSv >>789
師が職場におられるとはうらやましいですね
師が職場におられるとはうらやましいですね
793デフォルトの名無しさん
2021/12/04(土) 19:00:26.50ID:d5QmhWSv >>791
私はしませんが、仮に「自分は数学の天才である」と名乗りたいときに、どういう風に自分の天才性を形容するべきか、はいい演習課題になりますね
あまりマニアックなことをいってもスルーされるだけですし
私はしませんが、仮に「自分は数学の天才である」と名乗りたいときに、どういう風に自分の天才性を形容するべきか、はいい演習課題になりますね
あまりマニアックなことをいってもスルーされるだけですし
794デフォルトの名無しさん
2021/12/04(土) 19:21:42.11ID:5XDM8baS 私は分かりやすく>>621
他には
東大後期模試300点
数学偏差値90
東大数学科卒
など
普通は
論文数/論文引用数/肩書き(教授など)/受賞歴/特許出願数
などが実績ですが
私はその辺の実績はありません
他には
東大後期模試300点
数学偏差値90
東大数学科卒
など
普通は
論文数/論文引用数/肩書き(教授など)/受賞歴/特許出願数
などが実績ですが
私はその辺の実績はありません
795デフォルトの名無しさん
2021/12/04(土) 19:24:17.53ID:5XDM8baS 残念ながら自称数学の天才には効かなかったようです
796デフォルトの名無しさん
2021/12/04(土) 19:27:28.34ID:4fIXFJG6 アカデミー賞受賞最新作はどうでしょうか?
アカデミックな感じで。
アカデミックな感じで。
797デフォルトの名無しさん
2021/12/04(土) 19:28:53.97ID:d5QmhWSv >>794
なんか生々しいんじゃないですか?もっとサラっとした感じでお願いします…
なんか生々しいんじゃないですか?もっとサラっとした感じでお願いします…
798デフォルトの名無しさん
2021/12/04(土) 19:43:56.41ID:mlo2c7Dg 数学の天才っていうとラマヌジャンとかそういう人?
799デフォルトの名無しさん
2021/12/04(土) 19:49:29.22ID:d5QmhWSv >>798
円の体積・表面積を算出したアルキメデスでしょう、ニュートンライプニッツの2000年ほど前の人
円の体積・表面積を算出したアルキメデスでしょう、ニュートンライプニッツの2000年ほど前の人
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 安倍晋三銃撃事件ってあったけど
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- (´ん`)「公明党、お前だったのか。自民党から国民を守ってくれていたのは...」 [603416639]
- 高市が首相になってから進次郎の評価が爆上がりしてる件について
