\r\n\r\n

スリープ(sleep)とjavaで待つ(wait in java)の違い

sleepとwaitは、javaでマルチスレッド処理に使われる2つのメソッドです。sleepメソッドはthreadクラスに属し、waitメソッドはobjectクラスに属します。javaにおけるsleepとwaitの大きな違いは、sleepが現在のスレッドの実行を指定したミリ秒だけ中断するために使われるのに対し、waitメソッドは現在のスレッドを別のスレッドがオブジェクトのnotifyまたはnotifyallメソッドを呼び出す...。

主な違い - ハイバネーションとjavaの待ち時間

Javaにおけるsleepとwaitの大きな違いは、sleepは現在のスレッドの実行を指定されたミリ秒の間中断するために使われるのに対し、waitは現在のスレッドに、その実行が終了するまで待機させるために使われることです。他のスレッドがそのオブジェクトの notify メソッドや notifyAll メソッドを呼び出す。

スレッドは、オペレーティングシステムにおける最小の処理単位である。プログラム内の制御の流れを一連にしたものです。糸は軽量です。マルチスレッドとは、複数のスレッドを同時に実行する仕組みのことで、Javaなどのプログラミング言語はマルチスレッドに対応しています。マルチスレッド処理は、複数のスレッドを同時に実行でき、スレッド同士が独立しているため、多くの利点があります。Javaには、マルチスレッド処理に使用できるメソッドがあります。2人は寝て待っています。

カタログ

1. 概要と主な違い 2. Java の sleep とは 3. Java の wait とは 4. Java の sleep と wait の類似点 5. 横並びの比較 - Java の sleep と wait を表形式で表示 6. まとめ

Sleep in java (スリープ・イン・ジャバ)は何ですか?

OSでは複数のプロセスが動作しています。プロセスとは、実行されているプログラムのことです。各プロセスは複数のスレッドを持つことができ、これらのスレッドの間でコンテキストスイッチが発生する。Javaでは、スレッドを作成する方法は2つあります。Threadクラスはオブジェクトクラスを拡張し、runnableインターフェイスを実装しています。runnableインタフェースは、そのインスタンスがスレッドによって実行されるクラスのいずれかが実装する必要があります。スレッドが実行されるとき、実行されるべきコードがrunメソッドに記述されます。実行すべきスレッドは、スレッドスケジューラによって選択される。1つのプロセスで実行されるスレッドは1つだけです。

糸はいくつかの段階を経て完成します。Threadクラスのオブジェクトを作成した後、プログラマはstartメソッドを呼び出すことができます。このメソッドが呼ばれるまでは、スレッドは新しい状態であると言われています。スレッドスケジューラは、実行するスレッドを選択する。スレッドディスパッチャがまだスレッドを選択していないのに、startメソッドが呼ばれた場合、そのスレッドは実行可能な状態にあることになります。スレッドスケジューラは実行するスレッドを選択した後、実行状態へ移行する。スレッドがアクティブであっても、現在実行する資格がない場合は、非実行またはブロックの状態にあります。メソッドが完了すると、スレッド終了状態に移行する。以上がスレッドライフサイクルの主なステージである。

スレッドクラスは、さまざまなタスクを実行するために使用できるさまざまなメソッドを持っています。sleepメソッドの構文は以下の通りです。 public void sleep (long millises) throws InterruptedException.これは、現在実行中のスレッドを指定したミリ秒数だけ一時的に実行を停止させます。現在のスレッドの状態がクリアされると、他のスレッドの現在の状態がスローされます。

睡觉(sleep)和在java中等待(wait in java)的区别

図01:スリープ方式のJavaプログラム

上のプログラムによると、runメソッドには、実行されるべきコードが含まれています。メインプログラムでは、ExampleThread1のオブジェクトが2つ作成され、それに対してstartメソッドが呼び出されます。これにより、runメソッド内でコードが実行されるようになります。一度に実行できるスレッドは1つだけです。糸を使う。Hibernate (1000); は、最初のスレッドが1000ミリ秒の間、実行を終了することを許可します。スレッドが休止している間、スレッドスケジューラは別のスレッドを開始します。

Wait in java (ジャワで待つ)は何ですか?

複数のスレッドが1つの共有資源にアクセスすることができる。そのため、誤った出力を行ってしまうことがあります。スレッド同期は、スレッドが共有リソースにアクセスできるようにするためにのみ使用することができます。次のような状況を想定してください。t1とt2の2つのスレッドがある場合、t1はText1.txtというテキストファイルに値を保存し始める。t1 が戻ってきたとき、これらの値は他の計算に使用される。t1が戻る前にt2が開始した場合、t2はt1が保存した値を変更することができる。その結果、t1が不正な出力をする可能性があります。同期を利用して、t1がText1.txtファイルを使い始めると、t1だけがアクセスできるようにファイルをロックすることができます。t1がテキストファイルへのアクセスのロックを解除するまで、t2はそれを変更することができません。タスクが完了したら、t1 はロックを解除できる。錠前はモニターとも呼ばれる。

スレッドの同期は、スレッド間の通信によって実現することができます。クリティカルセクションは、共有リソースにアクセスするコードセグメントです。スレッド間通信では、あるスレッドがそのクリティカルゾーンで中断され、別のスレッドが同じクリティカルゾーンに入って実行することを許可します。wait、notify、notifyAllの各メソッドを用いて実装される。wait メソッドは、現在のスレッドがロックを解放し、他のスレッドがオブジェクトの notify または notifyAll メソッドを呼び出すのを待つために使用されます。起動待ちのスレッドはすべて通知ロックです。

睡觉(sleep)和在java中等待(wait in java)的区别

図02:電卓カテゴリー

睡觉(sleep)和在java中等待(wait in java)的区别

図03:主なメソッド

Calculatorクラスはスレッドを継承しており、runメソッドの内部には同期ブロックが、同期ブロックの内部にはforループとnotifyメソッドが存在します。mainメソッドでは、スレッドのインスタンスを生成し、そのインスタンスに対してstartメソッドを呼び出します。mainメソッドは、スレッドからの通知を待ちます。プログラム実行時、mainメソッドはrunメソッドの実行が終わるまで待機し、その後notifyメソッドを待ちます。notifyメソッドが呼ばれた後、mainメソッドは待機をやめ、残りのコードの実行を開始します。 mainは電卓スレッドの終了を待っています。最後に、集計結果が出力される。

他のスレッドが終了しない場合、次のいずれかの出力が終了していないため、他のスレッドを待つことになります。

calculator t1 = new calculator ().

t1. start ().

System.out.println (t1.sum)。

javaにおけるsleepとwaitの類似性は何ですか?

  • sleep と wait は、どちらも Java でマルチスレッドを実装する際に使用できるメソッドです。

スリープ(sleep)とjavaで待つ(wait in java)の違い

Javaにおけるスリープとウェイト
sleepメソッドは、システムタイマーやスケジューラの精度や正確さに応じて、指定されたミリ秒の間、現在のスレッドの実行を一時停止する。 wait メソッドは、他のスレッドがオブジェクトの notify または notifyAll メソッドを呼び出すまで、現在のスレッドを待機させるものです。
ロックに関連する
sleepメソッドは、同期中のオブジェクトのロックを解放しない。 waitメソッドは、同期中にロックを解放する。
実装方法
sleepメソッドは、現在のスレッドで実行されます。 オブジェクトのwaitメソッドを呼び出す。
関連カテゴリ
sleep はスレッドクラスのメソッドです。 wait はオブジェクトクラスのメソッドです。
コンプリート
指定された時間が経過すると、スリープ処理が完了します。 waitメソッドは、notifyまたはnotifyAllメソッドの呼び出しによって中断される。

概要 - スリープ(sleep) vs. javaで待つ(wait in java)

オペレーティングシステム上で複数のプロセスが動作している。各プロセスは複数のスレッドを持つことができます。スレッドとは、オペレーティングシステムにおける処理の最小単位で、プログラミング言語Javaはマルチスレッドをサポートしています。Javaにおけるsleepとwaitの違いは、sleepは現在のスレッドの実行を指定されたミリ秒数だけ中断するために使われ、waitメソッドは現在のスレッドを他のスレッドがオブジェクトのnotifyやnotifyAllを呼ぶまで待機させるために使われることですメソッドを使用します。

引用
  • 2020-10-19 03:04 に公開
  • 閲覧 ( 28 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ