問題タブ [blocking]

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.

0 投票する
3 に答える
24884 参照

python - Pythonサブプロセスcommunicate()ブロック

サブプロセスモジュールを使用して外部プログラム(plink.exe)を呼び出し、サーバーにログインしています。しかし、communicateを呼び出して出力を読み取ると、ブロックされています。コードは以下のとおりです。

plink.exeブロックがまだ実行されているためだと私は知っています。しかし、サブプロセスが終了する前に出力を読み取る必要があります。とにかくそれをすることはありますか?

0 投票する
4 に答える
4673 参照

javascript - JavaScript HTML ブロッキングを防止する方法

JavaScript が他の JavaScript のダウンロード開始をブロックしないようにするにはどうすればよいですか?

私のウェブサイトには次のようなものがあります。

YSlow Firefox アドオンを使用すると、[ネットワーク トラフィック] タブから、ダウンロードが完了google.com/google-maps.jsするまで JavaScript のダウンロードが開始されないことがわかりex.jsます。

質問ex.js: 両方をgoogle-maps.js取得して、すぐに並行してダウンロードを開始するにはどうすればよいですか?

0 投票する
3 に答える
25431 参照

c - ソケットをブロック モードにリセットする方法 (非ブロック モードに設定した後)。

ソケットをノンブロッキングモードに設定することに関してこれを読みました。

http://www.gnu.org/software/libc/manual/html_mono/libc.html#File-Status-Flags

これが私がしたことです:

ソケットをブロッキング モードに戻すにはどうすればよいですか? O_BLOCK フラグが表示されませんか?

ありがとうございました。

0 投票する
3 に答える
4775 参照

asp.net - TempGetStateItemExclusiveが継続的に呼び出されるため、SQLServer要求はタイムアウトになります

私はまともなトラフィック(1日あたり約100,000ページビュー)でサイトを運営していますが、SQLServerのタイムアウトエラーのために散発的にサイトがひざまずきました。

SQL Profilerを実行すると、次のように1秒間に数百回呼び出されるコマンドが表示されます。

SQLServerを使用してASP.NETセッションの状態を保存します。上記は、特定のセッションのセッション状態を取得するために呼び出されるストアドプロシージャです。同じ2つまたは3つのセッションを何度も要求して、ループしているようです。

この正確な状況に対処しているように見える有望なホットフィックスを見つけましたが、それは私たちにとって問題を解決していないようです。(この修正プログラムは、直接インストールできるようには見えないため、最新の.NETサービスパックに含まれていると思います)。そのレジストリキーを手動で追加しましたが、上記のようにストアドプロシージャの呼び出しがループしているのがわかります(500ミリ秒ごとよりもはるかに頻繁に同じセッションを要求します)

これを開発マシンで再現することはできませんでした。同じセッションIDに対して2つの要求が行われると、正しくブロックされているように見え、最初のページがセッションを解放するまでSQLをヒットしようとします。

何か案は?前もって感謝します!!!

0 投票する
2 に答える
6958 参照

java - Java スレッドの割り込みと結合 (スレッドは結合後も生きている)

私はいくつかの行動を理解しようとしています。1 つのスレッドを生成するコードがいくつかあります。しばらく待ってから中断し、参加してからメソッドを終了します。

現在、これを 1 つのスレッドで実行しています。通常、参加後に isAlive() が false になることをログで確認できますが、まだ生きている場合もあります。スレッドは while ループに入っています:

したがって、スレッドが入力ストリームの読み取り/処理中にスレッドを中断し (io をブロック)、while 条件を押して結合を終了するのにかかる時間よりも多くの時間がかかっていると思われます。

私の質問は、スレッドはどうなりますか?

スレッドは参照されなくなり、スレッドをガベージ コレクションできますが、どのリソースも適切にクリーンアップされておらず、問題があるようです。NIO に切り替える以外に、これに適したパターンはありますか?

0 投票する
7 に答える
28881 参照

java - 非同期計算を同期(ブロッキング)計算にラップする

同様の質問:

ライブラリクライアント(特にスクリプトクライアント)に公開したいメソッドを持つオブジェクトが次のようにあります。

しかし、私が利用できる基本的な「もの」は、イベント駆動型クラスのセットです。

ここで、ImplementingThingは入力を受け取り、タスクキューにキューに入れるなどの難解な処理を実行し、後で結果が発生したときに、sink.onBazResult()ImplementingThing.doSomethingAsync()が呼び出されたのと同じスレッドである場合とそうでない場合があるスレッドで呼び出されます。

スクリプトクライアントがブロッキングスレッドを喜んで待つことができるように、同時実行プリミティブとともに、私が持っているイベント駆動型関数を使用してMyNiceInterfaceを実装する方法はありますか?

編集:これにFutureTaskを使用できますか?

0 投票する
4 に答える
11714 参照

c# - C# : 条件が満たされるまで関数呼び出しをブロックする

私はC#Winformsアプリケーションを開発しています。アプリケーションの一部は、AsyncUploadを使用してWebサーバーにファイルをアップロードします(porgressコールバックを使用する必要があるため、それを使用します)、C#プログラムで

アップロード関数を呼び出す単純な for ループを取得しました

そして、楽しみはいくつかの魔法を行います:

非同期アップロードが完了したときに呼び出されるコールバック

編集

論理シーケンス:

  1. Fun が呼び出されます (ループから)
  2. 楽しいロジックが実行され、完了します。
  3. for ループに戻る
  4. UploadFileAsync (別のスレッドでいくつかのロジックを実行している) が終了すると、最終的にコールバックが呼び出されます。

問題は 3 番目のポイントにあります。実行が for ループに戻ると、コールバックが呼び出されるまでループが継続するのをブロックする必要があります。

0 投票する
6 に答える
26283 参照

javascript - javascriptでボタンが押されるのをプログラムに待機させるにはどうすればよいですか?

いくつかのレガシー JavaScript コードを変更する必要があります。ユーザーが 2 つのボタンのいずれかを押すまで待機してから、プログラム フロー (prompt()機能など) を続行する場所があります。これはどのように達成できますか?

0 投票する
1 に答える
187 参照

.net - AutoResetEvent オブジェクト、60 秒待機またはイベント

AutoResetEvent オブジェクトを使用してスレッドを 60 秒間ブロックしていますが、60 秒間または AutoResetEvent.set() イベントでブロックしたいと考えています。

コード :

しかし、それは常に60秒全体を待ちます! 信号を離しても。

0 投票する
3 に答える
10097 参照

sockets - CでのノンブロッキングUDPソケットプログラミング:何が得られますか?

非blockigUDPソケットからrecv()/ recvfrom()が何を返すかを理解するのに問題があります。

TCPと比較してもう少し具体的です(私が間違っている場合は訂正してください):

  • ブロッキングソケット(TCPまたはUDP)は、バッファにデータが存在するまで、recv()から戻りません。これは、バイト数(TCP)または完全なデータグラム(UDP)である可能性があります。

  • 非ブロッキングTCPソケットは、EWOULDBLOCK(linux)/ WSAEWOULDBLOCK(windows)または現在バッファーにあるバイトのいずれかを返します。TCPデータはストリームであるため、返されるバイト数は関係ありません。

今の質問:

  • 利用可能なデータがない場合、非ブロッキングUDPソケットはWOULDBLOCK(linux)/ WSAEWOULDBLOCK(windows)も返します。しかし、利用可能なデータがある場合、非ブロッキングUDPソケットはほんの数バイトを返しますか?つまり、データグラムの半分しか取得できないのでしょうか、それともUDPソケットは常に完全なデータグラムを返すのでしょうか?

編集:

「データグラムの半分」とは、ソケットが現在データグラムを受信して​​いる瞬間にrecv()を呼び出すとどうなるかということです。その瞬間、バッファにいくつかのバイトがありますが、データグラムはまだ完成していません。

説明やコメントをいただければ幸いです。ありがとう!