国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ Java &#&面接の質(zhì)問 インタビュアー: sleep()、wait()、join()、yield() の違いを教えてください。

インタビュアー: sleep()、wait()、join()、yield() の違いを教えてください。

Mar 01, 2021 am 10:18 AM
インタビュー

インタビュアー: sleep()、wait()、join()、yield() の違いを教えてください。

まず、ロック プールと待機(jī)プールの概念を紹介します。

最初にロック プールの概念を見てみましょう

同期ロックをめぐって競(jìng)合する必要があるすべてのスレッドは、ロック プールに配置されます。たとえば、現(xiàn)在のオブジェクトのロックは取得されています。このロック プールで待機(jī)しているときに、前のスレッドが同期ロックを解放すると、ロック プール內(nèi)のスレッドが同期ロックをめぐって競(jìng)合します。スレッドが同期ロックを取得すると、レディ キューに入ります。 CPU リソースの割り當(dāng)てを待ちます。

待機(jī)プールの概念を見てみましょう

wait() メソッドを呼び出すと、スレッドは待機(jī)プールに配置され、プール內(nèi)で待機(jī)しているスレッドは待機(jī)プールに配置されません。同期ロックをめぐって競(jìng)合します。 Notice() または NotifyAll() を呼び出した後でのみ、待機(jī)プール內(nèi)のスレッドがロックの競(jìng)合を開始します。notify() は待機(jī)プールからランダムにスレッドを選択してロック プールに入れますが、notifyAll() はすべてのスレッドを入れます。待機(jī)プールにある ロックプールに入れます。

  • sleep は Thread クラスの靜的ローカル メソッドであり、wait は Object のローカル メソッドです。

  • sleep メソッドはロックを解放しませんが、wait メソッドはロックを解放し、待機(jī)キューに追加します。

sleep就是把cpu的執(zhí)行資格和執(zhí)行權(quán)釋放出去,不再運(yùn)行此線程,當(dāng)定時(shí)事件結(jié)束再取回cpu資源,參與cpu的調(diào)度,獲取到cpu資源后就可以繼續(xù)運(yùn)行了,而如果sleep時(shí)該線程有鎖,那么sleep不會(huì)釋放這個(gè)鎖,而是把鎖帶著進(jìn)入了凍結(jié)狀態(tài),也就是說其它需要這個(gè)鎖的線程根本不可能獲取到這個(gè)鎖。也就是說無法執(zhí)行程序,如果在睡眠期間其它線程調(diào)用了這個(gè)線程的interrupt方法,那么這個(gè)線程也會(huì)拋出interruptexception異常返回,這點(diǎn)和wait是一樣的。
  • sleep メソッドは synchronized シンクロナイザーに依存しませんが、wait は synchronized キーワードに依存する必要があります。

  • sleep はウェイクアップする必要はありません (スリープ後にブロックを終了します) が、wait はウェイクアップする必要があります (指定された時(shí)間に他の人によって中斷される必要はありません)。

  • sleep は通常、現(xiàn)在のスレッドのスリープ、または操作のポーリングと一時(shí)停止に使用されますが、wait は主に複數(shù)のスレッド間の通信に使用されます。

  • sleep は CPU 実行時(shí)間を放棄し、コンテキストの切り替えを強(qiáng)制しますが、wait はそうではありません。wait 後も、再度ロックを競(jìng)合して実行を継続する可能性があります。

yield() 実行後、スレッドは直接準(zhǔn)備完了狀態(tài)となり、すぐに CPU の実行権を解放しますが、CPU の実行資格は保持したままであるため、次のことが考えられます。次回は CPU がスレッドのスケジューリングを?qū)g行し、このスレッドが実行権を取得して実行を継続します。

(學(xué)習(xí)ビデオ共有: java ビデオ チュートリアル)

join() が実行された後、スレッドはブロッキング狀態(tài)に入ります。たとえば、スレッドの join() を呼び出します。 A がスレッド B にある場(chǎng)合、スレッド B はブロッキング キューに入り、スレッド A にスレッドを終了または中斷するよう指示します。

public static void main(String[] args) throws InterruptedException {
        Thread t1=new Thread(()->{
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("休眠sleep線程");
        });
        t1.start();
        t1.join();
        System.out.println("線程執(zhí)行完成");
    }

元のリンク: https://blog.csdn.net/lxn1023143182/article/details/114134498

関連する推奨事項(xiàng): Java 面接の質(zhì)問と回答

以上がインタビュアー: sleep()、wait()、join()、yield() の違いを教えてください。の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

最適な Node.js Docker イメージを選択する方法について話しましょう。 最適な Node.js Docker イメージを選択する方法について話しましょう。 Dec 13, 2022 pm 08:00 PM

ノード用の Docker イメージの選択は些細(xì)なことのように思えるかもしれませんが、イメージのサイズと潛在的な脆弱性は、CI/CD プロセスとセキュリティに大きな影響を與える可能性があります。では、最適な Node.js Docker イメージを選択するにはどうすればよいでしょうか?

クロスドメインの問題を解決するにはどうすればよいですか?一般的なソリューションの簡単な分析 クロスドメインの問題を解決するにはどうすればよいですか?一般的なソリューションの簡単な分析 Apr 25, 2023 pm 07:57 PM

クロスドメインは開発においてよく遭遇するシナリオであり、インタビューでもよく議論される問題でもあります。一般的なクロスドメイン ソリューションとその背後にある原則を習(xí)得すると、開発効率が向上するだけでなく、面接でのパフォーマンスも向上します。

JavaScript のシングルトン パターンを理解するための 1 つの記事 JavaScript のシングルトン パターンを理解するための 1 つの記事 Apr 25, 2023 pm 07:53 PM

JS シングルトン パターンは、クラスのインスタンスが 1 つだけであることを保証する、一般的に使用される設(shè)計(jì)パターンです。このモードは主に、名前の競(jìng)合や繰り返しの読み込みを避けるためにグローバル変數(shù)を管理するために使用され、メモリ使用量を削減し、コードの保守性とスケーラビリティを向上させることもできます。

Golang フレームワークの面接質(zhì)問集 Golang フレームワークの面接質(zhì)問集 Jun 02, 2024 pm 09:37 PM

Go フレームワークは、Go の組み込みライブラリを拡張するコンポーネントのセットで、事前に構(gòu)築された機(jī)能 (Web 開発やデータベース操作など) を提供します。人気のある Go フレームワークには、Gin (Web 開発)、GORM (データベース操作)、RESTful (API 管理) などがあります。ミドルウェアは、HTTP リクエスト処理チェーンのインターセプター パターンであり、ハンドラーを変更せずに認(rèn)証やリクエストのログ記録などの機(jī)能を追加するために使用されます。セッション管理は、ユーザー データを保存することでセッションの狀態(tài)を維持します。ゴリラ/セッションを使用してセッションを管理できます。

Java JPA の面接で選ばれた質(zhì)問: 永続化フレームワークの習(xí)熟度をテストする Java JPA の面接で選ばれた質(zhì)問: 永続化フレームワークの習(xí)熟度をテストする Feb 19, 2024 pm 09:12 PM

JPAとは何ですか? JDBC との違いは何ですか? JPA (JavaPersistence API) は、オブジェクト リレーショナル マッピング (ORM) の標(biāo)準(zhǔn)インターフェイスです。これにより、Java 開発者は、データベースに対して SQL クエリを直接記述することなく、使い慣れた Java オブジェクトを使用してデータベースを操作できるようになります。 JDBC (JavaDatabaseConnectivity) は、データベースに接続するための Java の標(biāo)準(zhǔn) API であり、開発者は SQL ステートメントを使用してデータベースを操作する必要があります。 JPA は JDBC をカプセル化し、オブジェクト リレーショナル マッピングのためのより便利で高レベルの API を提供し、データ アクセス操作を簡素化します。 JPA ではエンティティとは何ですか?実在物

JavaScript はデータ型をどのように決定するのでしょうか? 8つの共有方法 JavaScript はデータ型をどのように決定するのでしょうか? 8つの共有方法 Feb 16, 2023 pm 02:48 PM

JavaScript はデータ型をどのように決定するのでしょうか?この記事では、仕事や面接に効果的に役立つ、JS を使用してデータ型を決定する 8 つの方法を紹介します。

Node の URL モジュールとクエリ文字列モジュールについて話しましょう Node の URL モジュールとクエリ文字列モジュールについて話しましょう Feb 23, 2023 pm 07:39 PM

URL モジュールとクエリ文字列モジュールは、2 つの非常に重要な URL 処理モジュールです。ノードサーバーを開発するときによく使用されます。

PHP 面接でよくある 100 の質(zhì)問 (分析付き) で知識(shí)の蓄えを強(qiáng)化しましょう! PHP 面接でよくある 100 の質(zhì)問 (分析付き) で知識(shí)の蓄えを強(qiáng)化しましょう! May 11, 2022 am 10:45 AM

この記事では、基本的な知識(shí)を整理し、PHP の知識(shí)の蓄えを強(qiáng)化するのに役立つ、PHP の面接でよくある質(zhì)問 100 個(gè)をまとめて共有します (回答も共有)。一定の參考値があるので、困っている友達(dá)が參考になれば幸いです。

See all articles