問題タブ [hivemq]
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 - スレッド間でより正確な時間を取得するより良い方法はありますか?
私は HiveMQ を使用しており、各スレッドに 1 つずつ 2 つのクライアントがあり、これら 2 つのスレッドを開始するメイン スレッドがあります。送信 (一方のスレッドの場合) と受信 (もう一方のスレッドの場合) の両方の時間を計るために使用してきたSystem.nanoTime()
ので、値を合計して、指定された数のメッセージを送受信する合計時間を取得できます。1 つのスレッドが別のスレッドをウェイクアップする必要があるのとほぼ同時にタイマーが開始されるように、Java でwait()
同期ブロックを使用しました。notify()
送受信の最終時間は、約 0 ~ 350 ミリ秒と異なるようですプログラムを実行すると、15 個のメッセージが自然に送受信されます。コンテキストとして、サーバーとクライアントは、サーバー アドレスとして localhost を使用して同じマシン上で実行されています。とにかく、スレッド全体でより正確な時間 (変化の少ない) を取得できる方法はありますか? できるだけ精度を上げたい。
サブスクライバー (送信側クライアント) のコード:
パブリッシャー (パブリッシング クライアント) のコード: