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

ホームページ Java &#&ベース Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。

Feb 09, 2021 pm 06:06 PM
java

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。

関連する無料學(xué)習(xí)の推奨事項: Java 基本チュートリアル

8 ロックの問題のデモ

1. 標(biāo)準(zhǔn)アクセス

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?synchronized?void?sendEmail()?throws?Exception{
		System.out.println("***sendEmail");
	}
	public?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				phone.sendSMS();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。
標(biāo)準(zhǔn)アクセスでは、最初に電子メールまたはテキスト メッセージを印刷します。
誰が最初に印刷されるかは関係ありません。それは CPU の実行に依存します。それらをアクティブにするのはメインスレッドです。後で誰が最初にスケジュールされるかはわかりません。
効果を確実にするために、A と B のコードの間に thread.sleep(100) を追加します。このとき、A が最初に出力されることを保証できます。
説明:
リソース クラスが存在する限り、それに含まれる同期メソッドの數(shù)に関係なく、スレッドが最初にリソース クラス內(nèi)のいずれかの同期メソッドにアクセスする限り、これはロックされません。メソッドは、メソッドが配置されているリソース クラス全體です。つまり、ロックされているのはオブジェクトです。ロックするものは現(xiàn)在のメソッドではありません。
つまり、これらの同期メソッドはすべて同じリソース クラスに屬し、リソース クラス全體がロックされます。

2. 電子メール メソッドで 4 秒間一時停止します。最初に電子メールまたはテキスト メッセージを印刷してください。

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?synchronized?void?sendEmail()?throws?Exception{
		TimeUnit.SECONDS.sleep(4);		//表示暫停4秒,它是一個枚舉類型
		System.out.println("***sendEmail");
	}
	public?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				phone.sendSMS();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

最初に電子メールを印刷してください。同期メソッドによって取得された電話オブジェクトのロックは、スリープによって解放されません。時間になるとすぐに実行されます。したがって、最初に電子メール メソッドを出力します。
説明:
これは質(zhì)問 1 と似ています。
リソース クラスが存在する限り、同期メソッドがいくつあっても、スレッドが最初にリソース クラス內(nèi)のいずれかの同期メソッドにアクセスする限り、このメソッドではなくメソッドがロックされます。リソースクラス全體。つまり、ロックされているのはオブジェクトです。ロックするものは現(xiàn)在のメソッドではありません。
例: モニターと私は同じ攜帯電話を使用して電話をかける必要があります。通話を続けるには、モニターが通話を終了するまで待つ必要があります。彼が使用している間、しばらくモニターが切斷されていたため、私はモニターが終了するのを待つことしかできませんでした。

#3. 通常のsayHello メソッドを追加します。最初に電子メールを印刷するか、hello

最初に hello を印刷してください

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?synchronized?void?sendEmail()?throws?Exception{
		TimeUnit.SECONDS.sleep(4);		//表示暫停4秒,它是一個枚舉類型
		System.out.println("***sendEmail");
	}
	public?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}
	public?void?sayHello(){
		System.out.println("***sayHello");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				//phone.sendSMS();
				phone.sayHello();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。
説明: 共通メソッドを追加した後、それが同期ロックとは何の関係もないことが判明しました。したがって、同期ロックが解除されるまで待つ必要はありません。 ここに例を示します。モニターは攜帯電話を使用して電話をかけました。そして、分隊長から攜帯電話の充電ケーブルを借りたいのですが、この 2 つは相互に排他的ではないので、分隊長が電話を終える前に充電ケーブルを借りることができます。

4. 2 臺の攜帯電話で、最初に電子メールまたはテキスト メッセージを印刷してください

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?synchronized?void?sendEmail()?throws?Exception{
		TimeUnit.SECONDS.sleep(4);		//表示暫停4秒,它是一個枚舉類型
		System.out.println("***sendEmail");
	}
	public?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}
	public?void?sayHello(){
		System.out.println("***sayHello");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		Phone?phone2=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				//phone.sendSMS();
				//phone.sayHello();
				phone2.sendSMS();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。

説明: これは例です。モニターは攜帯電話法メールを利用しています。私は自分の攜帯電話に電話をかけました。そうすれば、誰が最初で誰が最後になるかは関係ありません。

5. 2 つの靜的同期方法、同じ攜帯電話の場合は、最初に電子メールまたはテキスト メッセージを印刷してください

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?static?synchronized?void?sendEmail()?throws?Exception{
		TimeUnit.SECONDS.sleep(4);		//表示暫停4秒,它是一個枚舉類型
		System.out.println("***sendEmail");
	}
	public?static?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}
	public?void?sayHello(){
		System.out.println("***sayHello");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		Phone?phone2=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				phone.sendSMS();
				//phone.sayHello();
				//phone2.sendSMS();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。 説明:質(zhì)問 6 の分析と組み合わせます

6. 2 つの靜的同期方法、2 臺の攜帯電話、最初に電子メールまたはテキスト メッセージを印刷してください

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?static?synchronized?void?sendEmail()?throws?Exception{
		TimeUnit.SECONDS.sleep(4);		//表示暫停4秒,它是一個枚舉類型
		System.out.println("***sendEmail");
	}
	public?static?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}
	public?void?sayHello(){
		System.out.println("***sayHello");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		Phone?phone2=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				//phone.sendSMS();
				//phone.sayHello();
				phone2.sendSMS();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。 分析:
static クラスに屬します。言い換えれば、彼は現(xiàn)在のオブジェクトの獨立した個人に屬していません。グローバルクラスです。これには、オブジェクト ロックとグローバル ロックの違いを考慮する必要があります。グローバル ロックはクラス ロックです?,F(xiàn)時點では、1 臺の電話機であっても複數(shù)の電話機であっても、それらはすべて同じ Phone クラスに屬します。どのオブジェクトをロックしても、使用できるようになる前にロックが解除されるまで待たなければなりません。

7.1 靜的同期方法、1 つの通常の同期方法、同じ攜帯電話、最初に電子メールまたはテキスト メッセージを印刷してください

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?static?synchronized?void?sendEmail()?throws?Exception{
		TimeUnit.SECONDS.sleep(4);		//表示暫停4秒,它是一個枚舉類型
		System.out.println("***sendEmail");
	}
	public?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}
	public?void?sayHello(){
		System.out.println("***sayHello");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		Phone?phone2=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				phone.sendSMS();
				//phone.sayHello();
				//phone2.sendSMS();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。 1 つの靜的同期方法, 普通のもの。同じ電話がロックされています。靜的メソッドはクラスをロックします。これは 1 つの校門をロックするのと同じであり、もう 1 つは現(xiàn)在のオブジェクトをロックする通常の同期メソッドです。たとえば、普通の教師。ロックの対象が異なります。競合なし

8.1 靜的同期方法、1 つの通常の同期方法、2 臺の攜帯電話、最初に電子メールまたはテキスト メッセージを印刷してください

/*手機類可以發(fā)郵件和發(fā)短信*/class?Phone{
	public?static?synchronized?void?sendEmail()?throws?Exception{
		TimeUnit.SECONDS.sleep(4);		//表示暫停4秒,它是一個枚舉類型
		System.out.println("***sendEmail");
	}
	public?synchronized?void?sendSMS()?throws?Exception{
		System.out.println("***sendSMS");
	}
	public?void?sayHello(){
		System.out.println("***sayHello");
	}}public?class?Lock8Demo?{
	public?static?void?main(String[]?args)?throws?InterruptedException?{
		//創(chuàng)建一個資源類
		Phone?phone=new?Phone();
		Phone?phone2=new?Phone();
		new?Thread(()->{
			try?{
				phone.sendEmail();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"A").start();
		Thread.sleep(100);
		new?Thread(()->{
			try?{
				//phone.sendSMS();
				//phone.sayHello();
				phone2.sendSMS();
			}?catch?(Exception?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
		},"B").start();
	}}

Java では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。

説明: これは上記と同じです。

8 ロック理論の説明

1. オブジェクト內(nèi)に複數(shù)の同期メソッドがある場合、ある時點で 1 つのスレッドがいずれかの同期メソッドを呼び出す限り、他??のスレッドは待つことしかできません。これらの同期されたメソッドにアクセスします。
現(xiàn)在のオブジェクトはロックされています。ロックされた後、他のスレッドは現(xiàn)在のオブジェクトの他の同期メソッドに入ることができません。

通常のメソッドを追加した後、同期ロックとは関係がないことがわかりました。 。
2 つのオブジェクトを交換すると、同じロックがなくなり、狀況はすぐに変わります。
靜的同期メソッドに切り替えた後、狀況はすぐに変わりました
すべての非靜的同期メソッドは同じロックを使用します ------- インスタンス オブジェクト自體が同期を?qū)g現(xiàn)します

2.synchronized は同期を?qū)g現(xiàn)しますof: Java のすべてのオブジェクトはロックとして使用できます。
具體的には、次の 3 つの形式で表されます。

  1. 通常の同期メソッドの場合、ロックは現(xiàn)在のインスタンス オブジェクトです。
  2. 同期メソッド ブロックの場合、ロックは、で構(gòu)成されたオブジェクトです。同期ブラケット。
    たとえば、メソッド內(nèi)に
    synchronized(this){
    }
  3. と記述します。靜的同期メソッドの場合、ロックは現(xiàn)在のクラスの Class オブジェクトです。

プロセスが同期されたコード ブロックにアクセスしようとすると、最初にロックを取得する必要があります。終了するか例外をスローすることでロックを解放する必要があります。
つまり、インスタンス オブジェクトの非靜的同期メソッドがロックを取得した後、インスタンス オブジェクトの他の非靜的同期メソッドは、ロックを取得したメソッドがロックを解放するまで待機してから取得する必要があります。ロック。ただし、他のインスタンス オブジェクトの非靜的同期メソッドは、インスタンス オブジェクトの非靜的同期メソッドとは異なるロックを使用するため、取得したインスタンス オブジェクトの非靜的同期メソッドを待たずに、獨自のロックを取得できます。ロックを解除するにはロックを押します。

すべての靜的同期メソッドも、同じロック、つまりクラス オブジェクト自體を使用します。
2 つのロックは 2 つの異なるオブジェクトであるため、靜的同期メソッドと非靜的同期メソッドの間に競合狀態(tài)は発生しません。 (問題 78)。つまり、1 つのロック クラスと 1 つのロック クラス、この 2 つは競合しません。
ただし、靜的同期メソッドがロックを取得すると、他の靜的同期メソッドはロックを取得する前に、そのメソッドがロックを解放するまで待つ必要があります。同じインスタンス オブジェクトの靜的同期メソッド間であっても、異なるインスタンス オブジェクトの靜的同期メソッド間であっても、同じクラスのインスタンス オブジェクトである限りは関係ありません。 (質(zhì)問56)

以上がJava では、オブジェクト ロックとクラス ロックを完全に理解するのに役立つ 8 つのロックが導(dǎo)入されています。の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、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

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場合はconn.rollback()を呼び出します。同時に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設(shè)定して部分的なロールバックを達(dá)成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお勧めします。

Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時刻を取得します。 3。of()メソッドを使用して特定の日付と時刻を作成します。 4.プラス/マイナスメソッドを使用して、時間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

ネットワークポートとファイアウォールの理解 ネットワークポートとファイアウォールの理解 Aug 01, 2025 am 06:40 AM

ネットワークポートアンドファイアワルクトグテルトエナブルコマニケーションwhiledensuringsecurity.1.networksarevirtualendpointsnumbered0–655 35、withwell-knownportslike80(http)、443(https)、22(ssh)、および25(smtp)識別pecificservices.2.portsoperateovertcp(信頼できる、c

Garbage CollectionはJavaでどのように機能しますか? Garbage CollectionはJavaでどのように機能しますか? Aug 02, 2025 pm 01:55 PM

JavaのGarbage Collection(GC)は、メモリを自動的に管理するメカニズムであり、到達(dá)不可能なオブジェクトを取り戻すことでメモリ漏れのリスクを軽減します。 1.GCルートオブジェクトからのオブジェクトのアクセシビリティ(スタック変數(shù)、アクティブスレッド、靜的フィールドなど)、および到達(dá)不可能なオブジェクトはゴミとしてマークされています。 2。マーククリアリングアルゴリズムに基づいて、すべての到達(dá)可能なオブジェクトをマークし、マークのないオブジェクトをクリアします。 3.世代の収集戦略を採用する:新世代(Eden、S0、S1)は頻繁にMinorGCを?qū)g行します。高齢者のパフォーマンスは少なくなりますが、MajorGCを?qū)g行するのに時間がかかります。 Metaspaceはクラスメタデータを保存します。 4。JVMはさまざまなGCデバイスを提供します。SerialGCは小さなアプリケーションに適しています。 ParallelGCはスループットを改善します。 CMSが減少します

ユーザーデータにHTML「入力」タイプを使用します ユーザーデータにHTML「入力」タイプを使用します Aug 03, 2025 am 11:07 AM

適切なHTMLinputタイプを選択すると、データの精度を向上させ、ユーザーエクスペリエンスを向上させ、使いやすさを向上させることができます。 1.テキスト、電子メール、電話、番號、日付など、データ型に従って対応する入力タイプを選択します。 2。HTML5を使用して、より直感的な相互作用方法を提供できるURL、色、範(fàn)囲、検索などの新しいタイプを追加します。 3.プレースホルダーと必要な屬性を使用して、フォームフィリングの効率と精度を改善しますが、プレースホルダーがラベルを置き換えることはできないことに注意してください。

Javaビルドツールの比較:Maven vs. Gradle Javaビルドツールの比較:Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

gradleisthebetterchoiceformostnewprojectoitssuperorfficability、performance、andmoderntoolingsupport.1.gradle’sgroovy/kotlindslismoreconciseandexpressiveethanmaven’sverboseml.2.gradleorformsmavenbenbumebutedwitedwitedwitedspedexは

説明された延期聲明の例で進みます 説明された延期聲明の例で進みます Aug 02, 2025 am 06:26 AM

Deferは、クリーニングリソースなど、関數(shù)が戻る前に指定された操作を?qū)g行するために使用されます。パラメーターは、延期時にすぐに評価され、関數(shù)は最後のファーストアウト(LIFO)の順に実行されます。 1.複數(shù)の債務(wù)は、宣言の逆の順序で実行されます。 2.ファイルの閉鎖などの安全なクリーニングに一般的に使用されます。 3。指定された返品値を変更できます。 4.回復(fù)に適したパニックが発生した場合でも実行されます。 5。リソースの漏れを防ぐために、ループで延期の亂用を避けます。正しい使用により、コードのセキュリティと読みやすさが向上します。

See all articles