問題タブ [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.
multithreading - アクティビティ モニターが複数のスレッドを使用している Node.js を表示するのはなぜですか?
OSX でアクティビティ モニターを開いて、Node がどのように機能しているかを確認しました。驚いたことに、8 スレッドを使用しています。どうしてですか!!?
javascript - setTimeout がループをキャンセルしないのはなぜですか?
JavaScript ステートメント (Chrome のコンソール内) が 1 ミリ秒で変数を何回while
インクリメントできるか疑問に思ったので、すぐにこのスニペットをコンソールに直接書きました:
問題は、それが永久に実行されることです。
なぜこれが起こっているのですか、どうすれば解決できますか?
multithreading - サーバーで、単一のスレッドのみを使用して同時実行を実装できますか?
マルチスレッドがこの状況に理想的であることは知っていますが、この状況が適用できる例はありますか?
java - Java シングル データベース スレッドの実装方法
SQLite4Java を使用して SQLite データベースに接続する Java プログラムを作成しました。
シリアル ポートから読み取り、値をデータベースに書き込みます。これは最初はうまくいきましたが、今ではプログラムが大きくなり、いくつかのスレッドができました。私は、次のようなデータベース操作を実行する SQLiteQueue 変数でそれを処理しようとしました:
しかし、現在、私の SQLite クラスはステートメント レポートを実行できません。
したがって、実行は行われません。
何が問題なのかを突き止めようとしましたが、他のスレッドが通過する単一のスレッドからすべてのデータベース操作呼び出しを行う Java ラッパーが必要だと思います。
これが私の問題です。これを適切に実装する方法がわかりません。メソッド呼び出しを行い、それが常に同じスレッドから実行されるようにするにはどうすればよいですか?
javascript - ajax 呼び出し中に警告ウィンドウが表示されるとどうなりますか?
ajax 呼び出しの実行中に、ブラウザー ウィンドウでユーザーにアラートが表示されるとどうなるのだろうと思っていました。
たとえば、ajax 呼び出しがあるとします。
完了するまでに長い時間がかかります (10 秒)。呼び出しが実行されている間、単純な JavaScript アラートがスローされます
たとえば、次の場合はどうなりますか。
- ajax 呼び出しの開始
- データをフェッチする ajax 呼び出し
- アラートが表示される
- ajax 呼び出しはデータを返します (アラート ウィンドウはまだ開いています!)
JS がシングル スレッドであることを知っているので、スクリプトの実行が停止することがわかっています。アラート ウィンドウが「時間内に」閉じられない場合、ajax 呼び出し/応答がどうなるか疑問に思っていました。
私が十分に明確であり、これが「ダミー」の質問ではないことを願っています. ありがとうございました
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