タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaとThreadとsoftwareに関するItisangoのブックマーク (7)

  • Thread (Java Platform SE 8)

    すべての実装されたインタフェース: Runnable 直系の既知のサブクラス: ForkJoinWorkerThread public class Thread extends Object implements Runnable スレッドとは、プログラム内での実行スレッドのことです。 Java仮想マシンでは、アプリケーションは並列に実行される複数のスレッドを使用することができます。 各スレッドには優先順位が付けられています。 優先順位の高いスレッドは、優先順位の低いスレッドよりも優先して実行されます。 さらに、各スレッドがデーモンとしてマークされている場合もあれば、されていない場合もあります。 あるスレッドで実行中のコードが新しいThreadオブジェクトを作成すると、この新しいスレッドには、その時点では、作成側のスレッドの優先順位に等しい優先順位が設定され、作成側スレッドがデーモンである

    Itisango
    Itisango 2022/10/04
    「各スレッドには優先順位が付けられています。優先順位の高いスレッドは、優先順位の低いスレッドよりも優先して実行されます。さらに、各スレッドがデーモンとしてマークされている場合もあれば」
  • Concurrency Utilitiesの「再」まとめ - Java8対応版 - argius note

    以前、このような記事を書きました。 Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい (2013-12-26) 前回の内容は、Concurrency UtilitiesだけでなくJavaのマルチスレッドの話も一部含んでいましたが、今回は、Concurrency Utilitiesだけにフォーカスして、全体が分かるように整理してまとめ直しました。 目次 概要 準備 タスク・フレームワーク (Executor) 同期キュー シンクロナイザー 並行処理コレクション 時間単位 アトミック値型とアトミック操作 ロック・フレームワーク 概要 今回は、Concurrency UtilitiesのAPIをいくつかのグループに分類し、それぞれのグループの主要な機能を「広く浅く」紹介する、という形式でまとめています。 パッケージ単位で分け、それからjava.util.con

    Concurrency Utilitiesの「再」まとめ - Java8対応版 - argius note
    Itisango
    Itisango 2022/10/03
    概要 準備 タスク・フレームワーク (Executor) 同期キュー シンクロナイザー 並行処理コレクション 時間単位 アトミック値型とアトミック操作 ロック・フレームワーク
  • java.util.concurrent (Java Platform SE 8 )

    要素の取得時に両端キューが空でなくなるまで待機したり、要素の格納時に両端キュー内に空きが生じるまで待機するブロック操作を追加でサポートしたりするDequeです。

    Itisango
    Itisango 2022/10/03
    並行プログラミングでよく使用されるユーティリティ・クラスです。このパッケージには、標準化された小規模な拡張可能フレームワークと、利用しなければ実装が面倒または困難である有用な機能を提供するクラスが…
  • Javaのスレッド(Thread)とは?複数の処理を同時に動かす仕組み「スレッド」の扱い方

    Javaのスレッド(thread)とは、プログラム上で複数の処理を同時に動かす仕組みです。スレッドをJavaで使うためのクラスjava.lang.Threadを指す言葉でもあります。 さて、多くの作業は人が手分けすれば早く終わります。違う作業であっても、それぞれの作業へ人を割り当てれば同時に行えます。当然、一人での作業より効率的です。 それと同じで、プログラムでも処理を複数同時に動かせば、短い時間で効率よく処理できます。その仕組みがスレッドです。スレッドは、今ではごく当たり前に使われているのです。 この記事では、Javaでのスレッドの考え方・使い方の基から、スレッドを使う上で気を付けたいこと、スレッドに関する話題について、ポイントを絞って初心者向けに説明します。 ※この記事はJava 13時点の言語仕様・APIに基づいています。サンプルはJava 13の環境で動作確認しています。 1.【

    Javaのスレッド(Thread)とは?複数の処理を同時に動かす仕組み「スレッド」の扱い方
    Itisango
    Itisango 2022/09/30
    「現時点でスレッドを扱うには、Executorフレームワークを使うのが普通です。Threadをそのまま使う時の問題点が解消されます。Cocurrent Utilitiesには、さらに便利なクラスがあります。」
  • VNA05-J. 64ビット値の読み書きはアトミックに行う

    Java言語仕様では、64ビットのlong型およびdouble型の値を、2つの32ビット値として扱うことが許されている。たとえば、64ビット値の書込み操作は、2つの独立した32ビット値の操作として実行される可能性がある。 Java言語仕様の17.7節「doubleとlongの非アトミックな扱い」には以下のように記されている。[JLS 2005] ... こうした振る舞いは実装依存である。つまり、Java仮想マシンはlong値やdouble値の書込みをアトミックな動作として実行するか、あるいは、二つの動作として実行するかを自由に決定することが許されている。プログラミング言語Javaメモリモデルでは、volatileでないlong値やdouble値への単一の書込みは、それぞれ32ビットずつの二つの書込みとして扱われる。結果的に、ある64ビット値の書込みの最初の32ビットと、他の書込みによる次の

    VNA05-J. 64ビット値の読み書きはアトミックに行う
    Itisango
    Itisango 2022/09/29
    「Java言語仕様では、64ビットのlong型およびdouble型の値を、2つの32ビット値として扱うことが許されている。たとえば、64ビット値の書込み操作は、2つの独立した32ビット値の操作として実行される可能性がある。」
  • Runnable (Java Platform SE 8)

    既知のすべてのサブインタフェース: RunnableFuture<V>, RunnableScheduledFuture<V> 既知のすべての実装クラス: AsyncBoxView.ChildState, ForkJoinWorkerThread, FutureTask, RenderableImageProducer, SwingWorker, Thread, TimerTask 関数型インタフェース: これは関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。 @FunctionalInterface public interface Runnable インスタンスを1つのスレッドで実行するすべてのクラスで、Runnableインタフェースを実装する必要があります。 このクラスは、引数のないメソッドrunを定義しなければいけません。 このインタフェースは、ア

  • THI00-J. Thread.run() メソッドを直接呼び出さない

    スレッドの開始方法は誤解しやすい。スレッドで実行したい処理をコード上は正しく実行しているように見えても、実際には間違ったスレッドによって実行してしまっていることがある。Thread.start()メソッドを呼び出すと、Javaの実行環境は新たに開始したスレッドの上で、そのスレッドのrun()メソッドを実行する。Threadオブジェクトのrun()メソッドを直接呼び出すのは間違いである。直接呼び出した場合、run()メソッドのなかに書かれた処理は、新規に生成されたスレッドではなく、呼出し元のスレッドにより実行されてしまう。また、Threadオブジェクトが、Runnableオブジェクトから生成されるのではなく、run()メソッドをオーバーライドしていないThreadのサブクラスをインスタンス化することによって生成される場合、サブクラスのrun()メソッドはThread.run()メソッドを呼び

    THI00-J. Thread.run() メソッドを直接呼び出さない
    Itisango
    Itisango 2022/09/29
    「Thread.start()メソッドを呼び出すと、Javaの実行環境は新たに開始したスレッドの上で、そのスレッドのrun()メソッドを実行する。Threadオブジェクトのrun()メソッドを直接呼び出すのは間違いである。」
  • 1