2021年3月17日水曜日

[Java] synchronizedのメモ書き

こんにちは、針山散策を今日もほのぼのと行います。


今日はスレッドについてメモしたいと思います。


スレッドは、本来の処理とは別のプログラムを動作させる小さなプログラムの事だと思います。


・スレッドは、Runnableインタフェースを実装したrunメソッドが実行されます。

・Runnableはインタフェースなので、クラスのつもりでRunnableをnewは出来ません。

・起動方法はstart()メソッドによってスレッド化され、runメソッドを呼び出します。

・runメソッドの実行が終わると、スレッドも自動的に終了する。タイマを使用する際は再設定をよくします。

・スレッド実行中にsleep()メソッドを行うと、待ち状態に遷移する。

→他の実行可能状態のスレッドが動き出す。

・ThreadクラスはRunnableインタフェースを実装しているものです。

・synchronizedは複数のスレッドがあった時、共有領域の排他制御に用います。

    https://www.techscore.com/tech/Java/JavaSE/Thread/3/

・synchronized キーワードは、メソッドおよびブロックに指定することが出来る。

・synchronizedはRTOSでいうセマフォの動作を行います。

・synchronizedの例

class ZZZClass{

    synchronized static public void method() {

   .............

 }   

class ZZZClass{

 static public void method() {

   synchronized(Class.forName("ZZZClass")) {

     .............

   }

 }

と同じです。


0 件のコメント:

コメントを投稿