問題タブ [starvation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java C3P0 リソース不足
私は、関連する dao (複数のスレッドによって多くヒットされる) を持つメイン ワークフロー テーブルが、ほとんどリソース不足のように、公正な方法で要求に追いつくのに苦労している問題を見てきました。
スレッドはすべて、さまざまな外部システムからデータ (約 5 つ) をプルする役割を果たします。
ここでの問題は、スレッドが一度に非常に多くの情報を取得すると、テーブルへの要求を打ち込み、他のスレッドがアクセス/リソースをめぐって競合することです。そのため、通常はタイムアウトになり、再起動する必要があります。
この種のことを管理するためのメカニズムや戦略はありますか。私は頭のてっぺんから考えていました (これが私の最初の最初の考えです) すべてのスレッドも追加できる何らかの形式のブロッキングリストを作成し (おそらく先着順で)、SimpleJdbcOperations をそのようにフィルタリングします。
私は、この種の問題の標準と考えられている、そのような問題を解決するための理論を受け入れます。
ありがとう
java - 実行間隔より長くブロックする ScheduledExecutorService タスク
質問- 500 ミリ秒ごとに実行するようScheduledExecutorService.shceduleAtFixedRate
にスケジュールしますが、これは 1000 ミリ秒でブロックされます。taskA
これで、後続の実行は余分な 500 ミリ秒待つのではなく、前の実行の直後に開始されます。
taskA
固有のロックを取得しますが、これは別のスレッドによっても (試行されて) 取得されます。固有のロックには、このスレッドが飢餓のリスクを実行していることを保証する公平性がないため、ここに私の質問があります:このリスクを回避するための良い/クリーンな方法はありますか? たとえば、タスクを 1500 ミリ秒ごとに実行するようにスケジュールします (あまり防水性がありません)。それとも、ロックの取得が一種の「償却された公平性」を示すと予想しますか?
operating-system - 飢餓対護送効果
コンボイ効果は主にFCFSスケジューリング アルゴリズムで定義され、スターベーションは優先度ベースのスケジューリングであるというスタベーション効果とコンボイ効果の唯一の違いはありますか?
両方の効果について調べましたが、比較が見つかりませんでした。これは、私が大学で学んだオペレーティング システム理論に基づいています。