問題タブ [shared-resource]

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 に答える
152 参照

algorithm - データ整合性アルゴリズム

2 ~ 4 人用のネットワーク ゲームを開発しています。モデルの中心には、誰もがいつでも編集できる google-docs スプレッドシートのように機能するデータ構造があります。簡単にするために、スプレッドシートの各セルには 1 文字のみを含めることができます。

いくつかの能力と要件: 1. すべてのプレーヤーがいつでもスプレッドシートのセルを編集できます。(これは、「ロックされたセル」があってはならないことを意味します) 2. すべてのネットワーク トランザクションは信頼できます (ただし、順不同で到着する可能性があります)。

共有スプレッドシートのようなデータ構造を処理するためのアルゴリズムを開発するのに苦労しています。同様の問題に精通していて、解決策がある人はいますか? または問題を解決する簡単な方法を提案しますか?

ありがとうございました。

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

crash - ハードクラッシュ後の TeamCity 共有リソースロックをどのように修正しますか?

背景: 数十のビルド構成を持つ TeamCity インストールがあります。これらのビルド構成の多くは、同じサーバーにデプロイされます。競合を軽減するために、TeamCity の共有リソース機能を使用して、これらのビルドの実行方法を制御しました。1 つの特定のサーバーにデプロイするすべてのビルドには、同じ共有リソースに対する書き込みロックが必要です。したがって、同じサーバーに同時にデプロイしようとすることはありません。

週末にかけて、停電によるハードクラッシュが発生しました。クラッシュは、共有リソースに書き込みロックがあるビルドの実行中に発生しました。現在、書き込みロックが解放されていないようです。その共有リソースを使用するビルドはどれも実行できません。それらはすべてキューに入れられます。リソースを無効にしてから再度有効にすると、ビルドは実行されますが、次回は再びキューに入れられます。

これらの共有リソースを削除して再作成したくはありません。それぞれが 6 ~ 9 のビルド構成で使用され、それらすべてを再割り当てすることは大きな頭痛の種になります。解放されていない書き込みロックをクリアするにはどうすればよいですか?

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

c - C マルチスレッド - 2 つのスレッドによる Sqlite3 データベース アクセスがクラッシュする

ここに私の問題の説明があります:

私のプログラムには2つのスレッドがあります。1 つはメイン スレッドで、もう 1 つはpthread_createを使用して作成したものです。

メイン スレッドは、 sqlite3 データベースでさまざまな機能を実行します。各機能を開いて必要なアクションを実行し、完了したら閉じます。

もう一方のスレッドは、設定された時間間隔の後にデータベースから読み取り、サーバーにアップロードします。また、スレッドはデータベースを開いたり閉じたりして、その操作を実行します。

この問題は、両方のスレッドがたまたまデータベースを開いている場合に発生します。一方が先に終了すると、データベースが閉じられ、他方がクラッシュしてアプリケーションが使用できなくなります。Main では、操作ごとにデータベースが必要です。

これを防ぐ方法はありますか?Mutex は 1 つの方法ですが、mutex を使用すると、メイン スレッドが役に立たなくなります。メイン スレッドは常に機能している必要があり、他のスレッドはバックグラウンドで実行されます。

この作業を行うためのアドバイスは素晴らしいでしょう。この問題は少し広すぎるのでスニペットを提供しませんでしたが、問題について何も理解していない場合はお知らせください.

編集:

データベースを開くためのコード スニペット

そしてdbを閉じる

編集: バックグラウンド スレッドは、サーバーにアップロードする行ごとにテーブルの 1 つのフィールドを更新する単一の書き込み操作を実行することを追加するのを忘れていました

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

jboss - デフォルトのコンテキストで接続を初期化する jar ライブラリ用にデータソース jboss 4.2.3 を設定するにはどうすればよいですか?

データベースへの接続ロジックの一部を管理し、データをメモリに保存する jar ライブラリ util があります。$CATALINA_HOME/conf/context.xml でデータソースを構成でき、すべてが正常に機能するため、これは tomcat で正常に機能します。

jboss (4.2.3.GA) でデータソースを構成するにはどうすればよいですか? すべての戦争、耳、または展開されたアプリで見ることができます。もちろん、この jar util は $JBOSS_HOME/server/< instance >/lib に展開されていますか?

ありがとう :)

アップデート:

私は具体的にやりたい:

"2a. 共有リソースの構成

複数の JBoss Web アプリケーションで共有されるデータソースを定義する場合、またはこのファイルでデータソースを定義したい場合は、このオプションを使用します。

この著者はここで成功していませんが、他の人はそう報告しています. ここで明確化していただければ幸いです

ソース: https://docs.jboss.org/jbossweb/2.1.x/jndi-datasource-examples-howto.html

さて、私は「ここで説明をいただければ幸いです」の一部です...

0 投票する
0 に答える
835 参照

java - Android Studio 外部リソースを追加

私は、libgdx フレームワークに基づく Android アプリに取り組んでいます。PC でアプリをテストする必要があるため、Android Studio をセットアップして、apk または通常の Java jar をビルドします。しかし、リソース (画像、オーディオ、両方で常に同じ) を apk と jar の両方にパックする必要があります。これら 2 つのプロジェクト間でこれらのリソースを共有するにはどうすればよいですか?

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

c# - ネットワーク ドライブで Process.start を実行し、認証を求める

このコードを考慮すると:

共有リソースに接続して でパスを開きたいのですがExplorer.exe、ユーザーがまだ認証されていない可能性があります。ユーザーが認証されていない場合は、実行時に表示されるものと同じように Windows 認証ポップアップを開きたいのですが\\some_network_host\path、実際のコードでは代わりに " My Document " が開きます (ユーザーがまだ認証されていない場合)。ユーザーがすでに認証されている場合は、共有リソースを表示する explorer.exe ウィンドウが開きます。ありがとうございました。

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

python - Python3 Asyncio 同時実行タスク間でリソースを共有

各着信接続を同時に処理する Python Asyncio を利用する Python3.5 で記述されたネットワーク アプリケーションがあります。

すべての同時接続で、接続されたクライアントのデータをリストに保存したいと考えています。2 つのクライアントが同時に接続すると (可能性はあります)、両方のタスクが同時にリストに書き込もうとするため、確実に問題が発生するのではないかと心配しています。どうすればこれを解決できますか?

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

c - 関数によって初期化される変数をマルチスレッド環境の関数で使用できるようにする

ここに私が解決しようとしている問題があります.Cでプログラミングしています.

構造体を初期化できる関数があります。

そして、次のように使用します。

custom_t を入力として取り、それを使用していくつかの作業を行うことができる 4 つの関数があります。

別のファイルには、マルチスレッド環境で実行される多くのライブラリ関数があります。これらのライブラリ関数はすべて、スレッドに関係なく、同じ custom_t 変数で作業を行う必要があります。

ライブラリ関数は custom_t 変数を渡されません。これは、別のユーザーが custom_t 変数を考えずにライブラリ関数を使用できるようにすることが目的であるためです。

ライブラリ関数を定義する名前空間で custom_t 変数をグローバルにする必要があると考えていますが、グローバル変数は const でなければならないというエラーが表示されます。

これを達成する方法がわかりません。私が得ることができるすべての助けに感謝します。私の説明が十分でなかった場合は、遠慮なく質問してください。詳しく説明します。

編集:変数の初期化のタイプミスを修正