[解決済み] スレッド vs. 非同期
2023-01-27 14:47:42
質問
私はプログラミングのスレッドモデルと非同期モデルについて、このとても良い記事から読み解きました。 http://krondo.com/blog/?p=1209
しかし、この記事では次のような点に触れています。
- 非同期プログラムは、I/Oがあるたびにタスクを切り替えることによって、単純に同期プログラムを凌駕する。
- スレッドはオペレーティングシステムによって管理されます。
スレッドは OS によって、Ready-Queue と Waiting-Queue (他のキューの間) の TCB を移動することによって管理されると読んだ覚えがあるのですが。この場合、スレッドは待ち時間を無駄にしないのでしょうか?
以上のことから、スレッドプログラムに対する非同期プログラムの利点は何でしょうか?
どのように解決するのですか?
- スレッドセーフなコードを書くことは非常に困難です。非同期コードでは、コードが 1 つのタスクから次のタスクに移行する場所を正確に知っており、したがってレース コンディションははるかに困難です。
- スレッドは、各スレッドが独自のスタックを持つ必要があるため、かなりの量のデータを消費します。非同期コードでは、すべてのコードが同じスタックを共有し、タスク間で継続的にスタックを巻き戻すため、スタックは小さく保たれます。
- スレッドは OS の構造体であるため、プラットフォームがサポートするメモリが多くなります。非同期タスクではそのような問題はありません。
関連
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] Reduxの非同期フローになぜミドルウェアが必要なのか?
-
[解決済み] 非同期Task<T>メソッドを同期的に実行するにはどうしたらいいですか?
-
[解決済み] async/await関数を並列に呼び出す
-
[解決済み] async/await - タスクとvoidをいつ返すか?
-
[解決済み】非同期プログラミングとマルチスレッドの違いは何ですか?
-
[解決済み] 技術的に、なぜErlangのプロセスはOSのスレッドよりも効率的なのですか?
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] PythonからSMTPを使用してメールを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Python Empty Generator 関数
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?