問題タブ [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 投票する
2 に答える
3013 参照

c++ - スレッドセーフな配列の実装

複数のスレッドがアイテムを同時に変更/挿入できるようにする配列のようなデータ構造を実装したいと思います。パフォーマンスに関してどうすれば入手できますか?std :: vectorの周りにラッパークラスを実装し、スレッドの同期にクリティカルセクションを使用しました。以下の私のコードを見てください。スレッドが内部データを処理するたびに、他のスレッドを待たなければならない場合があります。したがって、その性能は良くないと思います。:(何かアイデアはありますか?

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

ruby - ruby の例外によってミューティックスのロックが解除されるのはなぜですか?

最近、私は Ruby のスレッドを扱っていて、少し予期しない動作を発見しました。クリティカル セクションでは、呼び出しraiseによってミューテックスが解放されます。ブロックを使用してメソッドのこれを期待できましたが、 とが別々に呼び出されsynchronizeたときにも発生するようlockです。unlock

たとえば、以下のコードは次のように出力します。

y…宇宙が熱で死ぬまでブロックされると思っていた場所。

x スレッドの m.unlock が実行されないにもかかわらず、y スレッドの実行が許可されるのはなぜですか?

0 投票する
4 に答える
7302 参照

java - Java で同期されたキーワードと静的クラス

私は、元々 (私が信じている) IBM developerworks サイトからのスレッド化チュートリアルを読んでいました。その中で、彼らは synchronized キーワードと、コードのブロック自体ではなく、実際のオブジェクトによって同期されたコードのブロックがどのようにロックされるかについて話しました。

たとえば、以下のコードでは、作成者は、静的クラス '<code>Thingie のsetLastAccessメソッドが同期化されているとリストされていても、その下で定義されている 2 つのスレッドはsetLastAccess、thingie に異なる値を使用しているため、それぞれ同時に呼び出すことができると述べています。しかし、thingie が静的である場合、それは同じ値を使用していることを意味しませんか?

同じオブジェクトを参照している場合でも、変数名が異なるだけでよい場合はありますか?

0 投票する
5 に答える
5306 参照

java - オブジェクトでの Java 同期

同じオブジェクトをロックするために、同じクラスの 2 つの異なるメソッドを同期する方法は? 次に例を示します。

問題は、doJob が実行されたときに run() が myList にアクセスしないようにするにはどうすればよいかということです。

これを想像してみてください: 私はスレッドを開始し、リストに要素を追加し始めます。ランダムな瞬間に、スレッドへの参照を保持する別のクラスから doJob() を呼び出します。

ロックはどうすればいいですか?ありがとう!

わかりました、ロックの概念は理解しましたが、別の質問があります。

クラスがあり、そのクラスのインスタンスが1 つpublic static myListだけあるとします。そのインスタンスから、そのリストのすべての要素を取得して何かを行うインスタンスを作成します。nThread

今、特定の瞬間にmyList更新されます。すでに myList 要素を処理していたスレッドはどうなりますか? myList更新中にアクセスをロックするにはどうすればよいですか?

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

android - Androidで2つの水平スクロールビューを同期する

この投稿のアドバイスに従ってみました。ScrollViewのスクロール位置を同期します-androidです が、問題が発生しています。

背景-水平スクロールと垂直スクロールの両方を備えたテーブルレイアウトが必要ですが、最初の行と最初の列が常に存在する必要があります-Excelのフリーズペインのように。残念ながら、AndroidのJavaプログラミングでは不可能に近いようです...私にそのような頭痛の種を引き起こします。これらの2つの水平スクロールビューを同期できる場合は、テーブルが希望どおりに機能するように設定しました。

私は上記の投稿されたリンクからのアドバイスに従いました、そして私が持っている問題はこれです。実装するとアプリフォースが閉じます

scrollView1.setScrollViewListener(this);

問題は、ObservableScrollViewsを宣言する方法にあるのではないかと思います。私はXMLを使用していません-すべてのオブジェクトはプログラムで作成されます。使ってみました

private ObservableScrollView oScrollViewOne = new ObservableScrollView(this);

しかし、これは同様に力を閉じさせています。(通常のスクロールビューを作成し、それにIDを割り当ててから、

scrollView1 =(ObservableScrollView)findViewById(ID); ここで、IDはスクロールビューに指定した整数です。

以下のコメントをどうすればよいのか、XMLレイアウトを使用していない場合はどのように使用するのか疑問に思っています。

また、既存のScrollViewタグの代わりに、この新しいObservableScrollViewクラスをレイアウトで指定する必要があります。

com.test.ObservableScrollView android:id = "@ + id /scrollview1"..。

以前に見たように、コードを指定せずにOnTouchMotionEventまたは他のアイデアを使用するための提案だけでなく、明示的なコードを使用して2つの水平スクロールビューの同期を実装するためのその他の提案。

これがエラーコードです

これが12行目です

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

linux - bash で外部サーバーから時刻を出力する

Unix timestamp外部サーバーからを簡単に取得できるかどうかを知りたいです( を使用するNTPと思います)。ntpd現在のシステム時刻をサーバーによって指定された時刻に更新する があることは知っていますが、を読みNTPたいだけです。Linuxでコマンドを使用することは可能ですか? そうでない場合は、Python (または何か) アプリを作成して取得し、シェルに出力する必要があると思います。timestampBash

0 投票する
4 に答える
2228 参照

java - Javaでマルチスレッドする方法

1000 のバッチでコードを実行するメソッドをマルチスレッド化する必要があります。これらのバッチを別のスレッドに渡す必要があります。

現在、私は 3 つのスレッドを生成していますが、3 つすべてが 1000 の最初のバッチを選択しています。他のバッチが同じバッチを選択するのではなく、他のバッチを選択する必要があります。

助けて提案をしてください。

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

iphone - NSUserDefaults standardUserDefaults は nil を返します

これに関するいくつかの質問を見てきましたが、これらが私の問題に答えているとは思いません。

私の方法では、アプリの最初の起動時にデフォルト値を設定するために使用するifステートメント内に...があります。

さらに下では、別のキーで同じことを行います。

それから私はこれを実行します...

エラーが発生します。

キャッチされていない例外 'NSRangeException' が原因でアプリを終了しています。

だから私は試しました...その行の直前に...

そして str は nil を返します。

私のconstants.hファイルには...

はい、accountArray はデータベースから入力され、値を持っています。

なぜ nil になっているのかわかりません。これを修正するにはどうすればよいですか? 私が読んだことから、これはうまくいくはずです。

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

multithreading - Delphiスレッド:メソッド内でSynchronizeを使用すると、CriticalSectionが「リリース」されない

私のプロジェクトには、スレッド自体、他のスレッド、またはVCL(メインアプリ)によって変更される可能性のあるスレッドがあります。したがって、私はすべてのデータアクセスにTCriticalSection.Acquire/Releaseを使用しています。

通常の状況では、次のコードは期待どおりに機能します。Acquireに入り、DoCallbackと同期してから、ロックを解除します。ただし、他のコンテキストのいずれかがすでにロックされているときにロックを取得した場合、以下のコードの実行はSynchronizeで停止します。今回は、DoCallbackメソッドに入りません。

Synchronizeメソッドをスキップして(SynchronizeのコードがVCLを呼び出す場合でも)、CriticalSection自体に依存する必要がありますか?この動作の理由は何ですか?

メインスレッドのコード:

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

system.reactive - RX で複数のサブスクリプションを同期する

異なるオブザーバブルへの複数の RX サブスクリプションを強制的に (同時にではなく) 連続して実行することはできますか?

そのために EventLoopScheduler を使用できることは認識していますが、すべての処理が単一のスレッドで行われるため、パフォーマンスが低下します。