問題タブ [synchronize]

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

java - ブール値で同期するのはなぜ良い習慣ではないのですか?

私の建築家はいつもそれを言います

ブール値で同期しない

私はその理由を理解することができません、そして誰かがそれが良い習慣ではない理由について例を挙げて説明することができれば本当にありがたいです。 参照サンプルコード

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

mysql - 2 つのデータベースで製品在庫を同期する方法。Mysql および MSSQL リアルタイム

私は、Mysql を使用した Magento e コマース システムと、MSSQL データベースを使用して .net で記述された Windows ベースの POS システムを持っています。

在庫をリアルタイムで管理する最良の方法は何ですか?

解決策 1 cron ジョブを作成してトランザクションを xml ファイルにエクスポートし、データを送信して、ftp 経由で POS から更新データを読み取る。また、POS システムで widows サーバーを作成して xml ファイルを読み取ってデータベースを更新し、xml をエクスポートした後、販売や在庫の手動変更があったときに Magento を更新します。

解決策 2 両端で在庫を更新する Web サービスを作成できますか?

前もって感謝します。

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

jquery - ImageMapster: 2 つのイメージ マップを同期する方法は?

ページに同じイメージ マップのコピーが 2 つあります。それらは異なる ID を持ち、同じ画像ファイルとマップ情報を使用します。

最初のマップを強調表示\クリックすると、2 番目のマップのみが正しく機能するようになりました。変更は、両方ではなく、2 番目のマップにのみ適用されます。

両方のイメージ マップを同期させる必要があります。そのため、マップの 1 つをマウスで移動したりクリックしたりすると、強調表示と選択が両方で同時に機能します。

これどうやってするの?

私のページの先頭のコード:

私のページの本文のコード:

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

java - java.lang.IllegalMonitorStateException: オブジェクトが wait() の前にスレッドによってロックされていない

しかし、私は「名簿」オブジェクトが新しくなるたびに同期しています。どうして ?

問題のコード:

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

android - Android AsyncTask が奇妙に重複を公開する

これは簡単な質問ではないと思います。手短に、何が起こっているかの小さな例を挙げます。Byron.txt ファイルにデータ ソースがあるとします。


彼女は雲のない気候と星空の夜のように、美しさの中を歩きます。
そして、暗くて明るい最高のもの
彼女の側面と彼女の目で会いましょう:華やか な日に天国が否定
するその優しい光にとてもまろやかです.

そして、このコードは AsyncTask 内で実行されます。

UI に TableLayout があり、新しい行を取得するたびに新しい TableRow を追加します。これは、UI に表示される出力です。


彼女は雲のない気候と星空の夜のように、美しさの中を歩きます。
雲ひとつない気候と星空。
雲ひとつない気候と星空。
優しい光に
まろやかに やさしい光にまろやかに

デバッガーを起動すると、なぜそれが起こるのかがわかります。がスキップされ、ループが続く
場合があります。すでにキャッチ済み のため公開はありません。 その後、ブロックはスキップされた回数だけ実行されます が、元の行が失われ、代わりに現在の行が数回追加されます。 その後、すべての新しい行が再びキャッチされるまで公開されます。synchronized (objectLock)
ilast

poem
ilast

コードに従っていることがわかり、何が起こっているのかを説明できます。ここでの質問は、ブロックがスキップされるのはなぜですか?
同期ブロックが実行可能になるまで停止すると予想していました。
少なくともこれは、synchronized (objectLock)
使用しなくてもの機能を理解した方法でwait()あり、notify()

ここでディスカッションを開くふりはしません (必要に応じて、チャット エリアでディスカッションを開くこともできます)
。コードに問題がある場合は、質問に答えてお知らせください。

ノート:

  1. synchronizedアプリ内の別の場所で、ユーザーがこれまでに取得した行をメールで送信したい場合があるため、必要です。
  2. ユーザーは公開を一時停止できます ( bpause)。それがwhileループで、が falseの場合にのみi続きます。lastbPause
0 投票する
1 に答える
1892 参照

php - モバイル連絡先を PHP および MySQL と同期する方法

ユーザーが GPRS または 3G モバイル ブラウザを使用して自分の携帯電話番号データベースを同期するにはどうすればよいですか。連絡先を同期すると、サーバーの MySQL テーブルに保存されます。

例: ユーザーが携帯電話のブラウザから www.example.com と入力して[今すぐ同期] ボタンをクリックすると、自動的に携帯電話の連絡先がサーバーに同期され、新しい連絡先が MySQL テーブルに保存されます。

私はグーグルで検索しましたが、まだ特定の結果を得ていません。

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

msbuild - MsBuildのプロジェクト間で共有リソースを同期する方法

MsBuildでビルドされたプロジェクト間で共有リソースへのアクセスを同期する必要があります。以前は、プロジェクトが連続して同じプロセスで実行された場合、これは問題ではありませんでした。しかし、MsBuildが複数のスレッドと複数のプロセスでプロジェクトビルドを実行できるようになったとき、これを実現する方法を見つけることができません。

基本的に、私が望んでいるのは、プロジェクトの構築が開始されたときに、リソースに対して何らかの操作を実行できることです。そして、それらがすべて最後まで構築されたら、私は別の操作を行うことができます。

最初にカスタムタスクを実装して、すべてのプロジェクトにビルドプロセスを変更させ、ビルドの前とビルドの後にタスクを挿入できると考えた場合。しかし、それらは並行して実行でき、プロセス間でも実行できるため、私は選択の余地がないようです。

これを理解しようとしたとき、私が最も近かったのは、Microsoft.Build.Execution名前空間(http://msdn.microsoft.com/en-us/library/microsoft.build.execution.buildsubmission)でBuildSubmissionクラスを見つけたときでした。 .aspx)。しかし、カスタムタスクからこれらのクラスをどのように操作するかについては何も見つかりません。

ある方向へのあらゆるタイプの入力またはポインタをいただければ幸いです。

/あたり

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

java - Collection の代わりに Iterator を返す

データアクセスレイヤーのメソッドのコレクションよりもイテレータを返す方が望ましいという利点はありますか?

どこかで見たことがありますが、理由は覚えていません。

PS: 完了していない間に一部のデータをリアルタイムでフェッチすることに関係している可能性があります。

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

.net - アプリケーション サーバー間でサービスの状態を同期する

  1. N 個の同一の Windows サービス (C#/.NET で開発) が N 個のアプリケーション サーバーで同時に実行されているとします。「残念ながら」、すべてのサービスには独自のメモリ内状態があります (「午後 10 時にジョブを実行する必要がある」など)。

  2. フロントエンド Web UI を介して、ユーザーはこれらのサービスのいずれかの状態を変更できます (たとえば、ジョブの開始時刻を 10 から 12 に変更します)。

私の質問: ユーザーが状態を変更した後、これらのサービス間で状態を同期するためのベスト プラクティスは何ですか? (できれば.NETプラットフォームで)。

ps なぜわざわざ異なるサーバーで同じサービスを実行するのか不思議に思うかもしれません。これは、管理者が冗長性が単一点障害を防ぐと考えているためです。ただし、ユーザーが UI を介して変更できる独自のインメモリ状態をサービス インスタンスが保持している場合にも、上記の問題が発生します。

ここでの提案は大歓迎です!

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

java - スレッドプール、共有データ、Java 同期

たとえば、データ オブジェクトがあるとします。

class ValueRef { double value; }

各データ オブジェクトがマスター コレクションに格納される場所:

Collection<ValueRef> masterList = ...;

ジョブのコレクションもあり、各ジョブにはデータ オブジェクトのローカル コレクションがあります (各データ オブジェクトは にも表示されますmasterList)。

使用事例:

  1. for (ValueRef x: masterList) { x.value = Math.random(); }

  2. ジョブ キューにいくつかのジョブを入力します。

  3. スレッドプールを起こす

  4. 各ジョブが評価されるまで待ちます

注: ジョブの評価中、すべての値はすべて一定です。ただし、スレッドは過去にジョブを評価した可能性があり、キャッシュされた値を保持しています。

質問: 各スレッドが最新の値を認識できるようにするために必要な同期の最小量はどれくらいですか?

モニター/ロックの観点からの同期は理解していますが、キャッシュ/フラッシュの観点からの同期は理解していません (つまり、同期ブロックの開始/終了時にメモリ モデルによって何が保証されているか)。

私には、新しい値をメイン メモリにコミットするために値を更新するスレッドで 1 回同期し、新しい値が読み取られるようにキャッシュをフラッシュするためにワーカー スレッドごとに 1 回同期する必要があるように感じます。しかし、これを行う最善の方法がわかりません。

私のアプローチ:グローバル モニターを作成します。次に、マスター リストを更新しながらstatic Object guard = new Object(); 同期します。guard最後に、スレッド プールを開始する前に、プール内のスレッドごとに 1 回guard、空のブロックで同期します。

それは本当にそのスレッドによって読み取られた値の完全なフラッシュを引き起こしますか? それとも、同期ブロック内で触れた値だけですか? その場合、空のブロックの代わりに、各値をループで 1 回読み取る必要がありますか?

御時間ありがとうございます。


編集:私の質問は、同期ブロックを終了すると、(その時点以降の)最初の読み取りはすべてメインメモリに移動するのでしょうか? 何を同期したかに関係なく?