問題タブ [single-threaded]

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 投票する
1 に答える
2565 参照

multithreading - アクティビティ モニターが複数のスレッドを使用している Node.js を表示するのはなぜですか?

OSX でアクティビティ モニターを開いて、Node がどのように機能しているかを確認しました。驚いたことに、8 スレッドを使用しています。どうしてですか!!?

8 スレッドのノード

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

javascript - setTimeout がループをキャンセルしないのはなぜですか?

JavaScript ステートメント (Chrome のコンソール内) が 1 ミリ秒で変数を何回whileインクリメントできるか疑問に思ったので、すぐにこのスニペットをコンソールに直接書きました:

問題は、それが永久に実行されることです。
なぜこれが起こっているのですか、どうすれば解決できますか?

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

multithreading - サーバーで、単一のスレッドのみを使用して同時実行を実装できますか?

マルチスレッドがこの状況に理想的であることは知っていますが、この状況が適用できる例はありますか?

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

java - Java シングル データベース スレッドの実装方法

SQLite4Java を使用して SQLite データベースに接続する Java プログラムを作成しました。

シリアル ポートから読み取り、値をデータベースに書き込みます。これは最初はうまくいきましたが、今ではプログラムが大きくなり、いくつかのスレッドができました。私は、次のようなデータベース操作を実行する SQLiteQueue 変数でそれを処理しようとしました:

しかし、現在、私の SQLite クラスはステートメント レポートを実行できません。

したがって、実行は行われません。

何が問題なのかを突き止めようとしましたが、他のスレッドが通過する単一のスレッドからすべてのデータベース操作呼び出しを行う Java ラッパーが必要だと思います。

これが私の問題です。これを適切に実装する方法がわかりません。メソッド呼び出しを行い、それが常に同じスレッドから実行されるようにするにはどうすればよいですか?

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

javascript - ajax 呼び出し中に警告ウィンドウが表示されるとどうなりますか?

ajax 呼び出しの実行中に、ブラウザー ウィンドウでユーザーにアラートが表示されるとどうなるのだろうと思っていました。

たとえば、ajax 呼び出しがあるとします。

完了するまでに長い時間がかかります (10 秒)。呼び出しが実行されている間、単純な JavaScript アラートがスローされます

たとえば、次の場合はどうなりますか。

  1. ajax 呼び出しの開始
  2. データをフェッチする ajax 呼び出し
  3. アラートが表示される
  4. ajax 呼び出しはデータを返します (アラート ウィンドウはまだ開いています!)

JS がシングル スレッドであることを知っているので、スクリプトの実行が停止することがわかっています。アラート ウィンドウが「時間内に」閉じられない場合、ajax 呼び出し/応答がどうなるか疑問に思っていました。

私が十分に明確であり、これが「ダミー」の質問ではないことを願っています. ありがとうございました

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

multithreading - CPU 周波数、スレッドの選択などを理解する

1270v3 とシングル スレッド アプリを使用すると、パフォーマンスが限界に達しますが、top などの監視ツールを見ると、この全体がどのように機能するのか理解できません。この種のトピックに関する素晴らしい記事を見つけようとしましたが、それらは私が理解できない言語で説明されているか、知りたいことに関するものではありません. このようなことはこちらで質問してよろしいでしょうか。

私の理解では、シングル スレッド アプリはすべて/ほとんどの作業で 1 つのスレッドしか使用しません。そのため、パフォーマンスは CPU のシングルスレッド能力によって定義されます。この質問を書く前に、CPU 周波数をいじってみたところ、実行中のアプリのインスタンスは 2 つしかありませんが、使用量はすべてのコアで共有されていることに気付きました。したがって、スレッドはこれらのコアの間を飛び回っていると思います。そこで、CPU スケーリングを でパフォーマンスに設定しましたcpufreq-set -g performance。その結果、永続的に 3.5GHz (100%) になっているものを除いて、すべての CPU コア/スレッドが以前と同じように約 2GHz のままでした。1 つのコアのスケーリングのみを変更したのに、使用量がまだすべてのコアで共有されているのはなぜですか? アプリは約 300% で実行されているということですが、100% で CPU コアに固執しないのはなぜですか?

さらに、CPU の 1 つだけがスケールアップされていることに気付いたので、ヘルプ ページを調べたところ-r、パフォーマンス設定ですべてのコアをスケールする必要があることがわかりました。残念ながら何も変わりません。(これは Ubuntu 1404 のバグですか?) それで-c、番号8(8 スレッド) で使用しました -> 機能しませんでした。4-> 動作しますが、8 コアのうち 2 コアのみをスケーリングします。 7-> 4 コアをスケーリングします。それで、これはハイパースレッディングをサポートしていないのでしょうか、それともプログラム全体にバグがあるのでしょうか?

ただし、私が理解しているように、最大​​周波数の CPU とスレッドは、共有されているように見える平均使用量を表示するため、監視ツールでジャンプします。私はこれを正しく理解しましたか?

1つのCPUを3.5GHzに強制し、アプリをこのコアに強制するとパフォーマンスが向上しますか、それとも毎秒表示されるデータ間の平均計算についてのみ疑問に思っていることです. cpufreq-set -c 7 -g performanceもしそうなら、消費電力が問題にならないのであれば、私はそれで最高に動くべきであるというのは正しいですか?

ここまで読んでくれてありがとう。全体を理解するのに少しお時間をいただければ幸いです。

スクリーンショットの例:

http://i.imgur.com/VFEBvLx.png

http://i.imgur.com/cBKOnJM.png

http://i.imgur.com/bgQfwfU.png