問題タブ [synchronization]
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 - スレッド同期に関する質問 (Java で)
私の Java アプリケーションには、並列化できる 2 つのサーバー呼び出しを必要とするロード タスクがあります。そこで、スレッド t1 ( task1を実行) とスレッド t2 ( task2用) を起動します。次に、他の両方のタスク (1 と 2) が終了したときに、特定のタスクtask3を実行したいと考えています。当然、タスク 1とタスク 2のどちらが先に終了するかわかりません...
これをコーディングする最も簡単な(そして最も安全な)方法はどれですか?
ご協力ありがとうございました
outlook - Outlook 連絡先の同期 - 同期する正しいオブジェクトを特定する方法は?
Outlook の連絡先を CDO 経由でデータベースに同期する (および戻す) Web アプリケーションがあります。DB には、すべての連絡先が 1 回だけ含まれ (少なくとも理論的には、もちろんダブレットが発生します)、Outlook で特定の連絡先を持っているユーザーの数に関係なく (Interaction や類似の製品など)、連絡先の単一の変更点が提供されます。
同期プロセスは自動ではなく、ユーザーが初期化します。ユーザーが連絡先の同期を決定する前に、任意のタイムスパンが経過する可能性があります。これらの連絡先のサブセットは、その間に他のユーザーによって更新された可能性があります。
通常、これは問題なく実行されますが、この根本的な問題を解決できたことはありません。
メールボックス内の連絡先オブジェクトを間違いなく特定するにはどうすればよいですか?
- に頼ることはできません
PR_ENTRYID
。このプロパティは、連絡先の移動またはメールボックスの移動で変更されます。 - 自分の ID (DB テーブル ID など) は連絡先と共にコピーされるため、信頼できません。
- 名前や電子メール アドレスなどのフィールドは絶対に信頼できません。変更や更新の対象となります。
現在、1 (優先) と 2 (フォールバック) の組み合わせを使用しています。しかし、必然的に、ユーザーは間違った連絡先に同期するという問題に遭遇することがあります。これは、指定された には 1 つも存在せずPR_ENTRYID
、同じ DB ID を持つ 2 つの連絡先があり、そのうち間違った連絡先が選択されているためです。
多くの Outlook 同期製品が出回っているので、問題は解決できるはずです。
php - PHP 5.x 同期ファイル アクセス (データベースなし)
私は Java、C、および C++ に精通しています。これらの言語では、常に 1 つのスレッドのみがリソースにアクセスするように制御する方法があります。今、似たようなものを探していますが、PHP 5.x.
1つの例で私の問題を定式化するには:
ページロードカウンターの値である数値のみを格納するASCIIファイルがあります。アプリケーションの展開時に、ファイルは単純に 0 を保持します。アクセスごとに値が 1 ずつ増加します。目標は、ページの読み込みを追跡することです。
問題は、多くのユーザーがカウンターを含むページに同時にアクセスしている場合に発生します。スレッド A が現在の値を読み取ったとき、それが 11 だとしましょう。別のスレッド B が値を読み取りますが、まだ 11 です。次に、最初のスレッド A が読み取り値をインクリメントし、ファイルに 12 を書き込み、ファイルを閉じます。次に、2 番目のスレッド B が、11 だった読み取り値をインクリメントし、12 を取得して、それをファイルに書き込みます。値 12 がファイルに保存されますが、実際には 13 である必要があります。
別のプログラミング言語では、ミューテックスを使用してこれを解決していたでしょう。モジュールの一部として、ミューテックス、共有メモリ、およびその他の機能があることを理解しています。しかし、「ほとんどのサーバー」で機能するソリューションが欲しいです。プラットフォームに依存しません。ほとんどの安価な Web ホストにインストールされています。この問題の良い解決策はありますか? データベースを使用できない場合、どの方法を使用しますか?
java - データ ソースの同期にどの JDBC ツールを使用していますか?
データベース間でデータを同期するために人々がどのツールを使用しているかを知りたいと思っています。コマンドライン ツールとして使用できる JDBC ソリューションを探しています。
以前は SyncML フレームワークを使用した Sync4J というツールがありましたが、これは廃れたようです。
java - 文字列メソッド引数でJavaのio操作を同期しますか?
基本的に、オブジェクトを XML ファイルにシリアル化するメソッドと、XML からオブジェクトを読み取るメソッドの 2 つのメソッドを持つクラスがあります。オブジェクトを復元するメソッドの同期部分の例を次に示します。
オブジェクトをシリアライズするときも、同様のアプローチが取られます。ここで、単体テストを作成すると、各スレッドがブール値または文字列をシリアル化して即座に読み取ろうとする 10 個のスレッドが作成され、ClassCastExceptions が発生したことを示して失敗します。これは、シリアル化が間違っていると思います (シングルスレッド環境ではすべて問題ありません)。この時点まで私と一緒にいてくれた場合:)、ここにあなたの助けが必要な2つの問題があります:
- メソッドに渡された文字列引数を同期することは理にかなっていますか (Java に文字列プールがあることを考慮して)? ところで、XMLSerializer クラス自体で同期を試みましたが、結果は同じままでした。
- 単一のファイルで io 操作を正しく同期するにはどうすればよいですか?
.net - 設計上の問題: アプリケーションでの共有、同期、データ アクセス... 最善のアプローチは?
作業項目が送信され、ワークロードに応じてユーザーに割り当てられる Web アプリケーション (asp.net) があります。
ユーザーのワークロードは、現在ユーザーに割り当てられているアイテムの数 (およびその他の要因) に基づくアルゴリズムを使用して計算されます。新しいアイテムはそれぞれ、現在のワークロードが最も低いユーザーに割り当てられ、ワークロードが増加します。項目を完了すると、ユーザーの作業負荷が減少します。アイテムは同時に提出、割り当て、完了されるため、ワークロード レベルは絶えず変化します。作業項目は SQL データベースに格納されます。
ユーザーベース全体のワークロードの最新の状況を使用して、すべての割り当ての決定が行われるようにする方法が必要です。
私の考えは、キャッシュ内のワークロード情報の読み取り/書き込み同期ストアを提供することです。
これは最善のアプローチですか?または、データベースを使用してロックを制御する必要がありますか? アプリケーションのボトルネックを回避するにはどうすればよいですか?
アドバイスをいただければ幸いです。
multithreading - WaitForObject
WaitForObject()関数の戻り値を教えてください。
戻り値のタイプ(int)を意味するのではありません。イベントが通知された場合は何を返し、イベントが通知されなかった場合は何を返しますか。
ありがとう
error-handling - クライアントとサーバー間の変数の同期
クライアント側のカウンター変数があるとします。サーバーにリクエストを送信するときは、この変数の値を送信してから、値を 1 つ増やします (サーバーへの次のリクエストのために)。サーバーはこのカウンターを独立して追跡し、クライアントから送信されたカウントがそれ自体 (サーバー側) のカウントのコピーよりも 1 多いことを確認します。これはすべてうまくいきますが、次の状況を考えてみてください。
- クライアントは、たとえば 23 をサーバーに送信します。
- サーバーは 23 を受け取り、それを検証して、独自のカウンターを 23 に増やします。
- サーバーは All-Okay コードをクライアントに返します
-しかし-
サーバーからクライアントへの途中で、リターン コードが破損します。したがって、クライアントは、サーバーがカウンターを更新しなかったと考え、クライアント側のカウンターを 23 のままにします。この時点以降、クライアントとサーバーは同期していません。
このような破損/エラーの可能性に直面しても機能する堅牢なスキームを知っている人はいますか?
ありがとう、
キャメロン
c# - Java の「同期」と C# の「ロック」に違いはありますか?
これら 2 つのキーワードの効果はまったく同じですか、それとも注意すべき点はありますか?
shell - 複数のマシン間でシェル構成の同期を維持する
私はかなりアクティブなコマンドラインユーザーであり、いたるところにシェルアカウントがあります。MacBook、Linuxデスクトップマシン、Linuxサーバー、XP上のCygwin、あなたはそれに名前を付けます。
すべてのプラットフォームで利用できる限られたツールを使用して、これらすべてのマシン間でシェル構成(など)の同期を.bashrc
維持するにはどうすればよいですか?.vimrc
私はrsync
かなり限られた方法で使用しており、必要なときにいくつかのファイルを手動でコピーする必要がありますが、すべてのマシンで同じ基本的なシェル環境をセットアップするための標準的な方法が必要です。シェルアカウント管理戦略を教えてください。