タグ付けされた質問 「concurrency」

コンピュータサイエンスでは、同時実行性は複数の計算を重複する期間で実行できるシステムの特性です。計算は、同じチップの複数のコアで実行されたり、同じプロセッサでプリエンプティブに時分割されたスレッドで実行されたり、物理的に分離されたプロセッサで実行されたりします。






7
Node.jsに対するHaskellの応答とは何ですか?
Erlangコミュニティは、非ブロッキングI / Oをネイティブで実行し、デプロイメントを複数のプロセッサー(Node.jsに組み込まれていないもの)まで簡単に拡張できる方法があるため、Node.jsにうらやましくないと思います。詳細については、http://journal.dedasys.com/2010/04/29/erlang-vs-node-jsおよびNode.jsまたはErlangをご覧ください。 ハスケルはどうですか?HaskellはNode.jsのいくつかの利点、つまりマルチスレッドプログラミングに頼ることなくI / Oのブロックを回避するクリーンなソリューションを提供できますか? Node.jsには魅力的なものがたくさんあります イベント:スレッド操作はありません。プログラマーはコールバックのみを提供します(Snapフレームワークの場合と同様)。 コールバックは単一のスレッドで実行されることが保証されており、競合状態は発生しません。 素晴らしくシンプルなUNIXフレンドリーなAPI。ボーナス:優れたHTTPサポート。DNSも利用できます。 すべてのI / Oはデフォルトで非同期です。これにより、ロックを回避しやすくなります。ただし、コールバックでのCPU処理が多すぎると、他の接続に影響します(この場合、タスクはより小さなサブタスクに分割され、再スケジュールされます)。 クライアント側とサーバー側で同じ言語。(ただし、この例ではあまり価値を見ていません。jQueryとNode.jsはイベントプログラミングモデルを共有していますが、残りは大きく異なります。サーバー側とクライアント側の間でコードを共有する方法がわかりません。実際に役立つ。) これらすべてが1つの製品にパッケージ化されています。

5
どうしてもこのJavaプログラムが終了すべきではない(そしてそうでなかった)にもかかわらず終了するのはなぜですか?
今日の私の研究室での敏感な操作は完全に間違っていました。電子顕微鏡のアクチュエーターはその境界を越え、一連の出来事の後に私は1200万ドルの機器を失いました。障害のあるモジュールの40K行以上を次のように絞り込みました。 import java.util.*; class A { static Point currentPos = new Point(1,2); static class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; } } public static void main(String[] args) { new Thread() { void f(Point p) { synchronized(this) {} if (p.x+1 …

5
LMAXのかく乱パターンはどのように機能しますか?
かく乱のパターンを理解しようとしています。私はInfoQビデオを見て、彼らの論文を読んでみました。リングバッファが関係していることを理解しています。これは、キャッシュの局所性を利用して新しいメモリの割り当てをなくすために、非常に大きな配列として初期化されることを理解しています。 位置を追跡する1つ以上の原子整数があるように思えます。各「イベント」は一意のIDを取得しているようで、リング内での位置は、リングのサイズなどに関する係数を見つけることでわかります。 残念ながら、私はそれがどのように機能するかを直感的に理解できません。私は多くの取引アプリケーションを実行し、アクターモデルを研究したり、SEDAを調べたりしました。 彼らのプレゼンテーションでは、このパターンは基本的にルーターがどのように機能するかであると述べました。しかし、ルーターがどのように機能するかについての良い説明は見つかりませんでした。 より良い説明への良い指針はありますか?

30
Javaで最も頻繁に発生する並行性の問題は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 これは、Javaにおける一般的な同時実行性の問題に関する一種の投票です。例としては、古典的なデッドロックや競合状態、あるいはSwingのEDTスレッド化バグが考えられます。考えられる問題の範囲だけでなく、最も一般的な問題にも興味があります。したがって、Javaの同時実行性バグの特定の回答をコメントごとに1つ残し、遭遇したものを見つけたら投票してください。

10
同期とロック
java.util.concurrentAPIはと呼ばれるクラスを提供しますLock。これは基本的に、重要なリソースにアクセスするためにコントロールをシリアル化します。park()およびなどのメソッドを提供しunpark()ます。 synchronizedキーワードとusing wait()およびmethodを使用できれば、同様のことができますnotify() notifyAll()。 これらのうちどれが実際に優れているのか、なぜですか?

6
スレッドの作成に費用がかかると言われているのはなぜですか?
Javaチュートリアルによると、スレッドの作成にはコストがかかります。しかし、なぜそれが正確に高いのですか?Javaスレッドが作成され、その作成に費用がかかると、正確にはどうなりますか?私はこのステートメントを真実と見なしていますが、JVMでのスレッド作成のメカニズムに興味があります。 スレッドのライフサイクルのオーバーヘッド。スレッドの作成と分解は無料ではありません。実際のオーバーヘッドはプラットフォームによって異なりますが、スレッドの作成には時間がかかり、リクエスト処理にレイテンシが発生し、JVMとOSによる処理アクティビティが必要になります。ほとんどのサーバーアプリケーションのように、リクエストが頻繁で軽量である場合、リクエストごとに新しいスレッドを作成すると、大量のコンピューティングリソースを消費する可能性があります。 ブライアン・ゲッツ、ティム・パイエルス、ジョシュア・ブロック、ジョセフ・ボウビア、デビッド・ホームズ、ダグ・リーによるJavaの並行処理から 印刷ISBN-10:0-321-34960-1

8
同期された静的メソッドはJavaでどのように機能し、それをHibernateエンティティのロードに使用できますか?
基本的なデータアクセスを実行するためにHibernate関数を呼び出す静的メソッドを持つutilクラスがある場合。メソッドの作成がsynchronizedスレッドの安全性を確保するための適切なアプローチであるかどうか疑問に思っています。 これにより、同じDBインスタンスへの情報へのアクセスを防ぐことができます。ただし、次のコードがgetObjectById特定のクラスから呼び出されたときに、すべてのクラスに対して呼び出されるのを妨げているかどうかは確信しています。 public class Utils { public static synchronized Object getObjectById (Class objclass, Long id) { // call hibernate class Session session = new Configuration().configure().buildSessionFactory().openSession(); Object obj = session.load(objclass, id); session.close(); return obj; } // other static methods }




弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.