高同時プログラミング-1
2252 ワード
コンセプト:
なぜrun()ではなくstart()でスレッドを起動するのですか?
マルチスレッドシーン
runnableはどんなデザインモデルを採用していますか?
threadGroup
join 6-スレッドデッドロックの確認
7-ロックのカテゴリ
複数のメソッドがsynchronizedキーワードで修飾されているか、メソッドでthisを指定すると、1つのthisロックが共用されます.つまり、同じ時間にthisを使用したすべてのメソッドがシリアル実行になります.(定義されたメンバー変数はロックパラメータとしてsynchronizedに伝達されるのも同様)
-class:マルチスレッドが同じクラスのクラスロック(synchronized修飾静的メソッド)とオブジェクトロック(synchronized修飾非静的メソッド)の両方に同時にアクセスする場合、クラスロックとオブジェクトロックは2つの異なるロックであるため、非同期である. クラスロックは、クラスのすべてのオブジェクトに対して機能しますが、オブジェクトロックはできません.
8-スレッド通信
例:生産者消費者
waitとsleepの違い:
1- Thread
2- Runable
3- Callable FutureTask
a. Callable , call() ;
b. Callable , FutureTask Callable , FutureTask Callback call() ;
c. FutureTask Thread target ;
d. FutureTask get() 。
4-
なぜrun()ではなくstart()でスレッドを起動するのですか?
1-java main , JVM , main
2- , Thread ,override run , start
3- JVM , ,
4- start , , ( main , main ),
run
5- new,runnable,running,block,terminated.
マルチスレッドシーン
( )
runnableはどんなデザインモデルを採用していますか?
-
threadGroup
1- Thread, , Thread- , 0
Thread()
:
Thread-0
Thread-1
Thread-2
2- Thread Runnable Thread run , Thread , Runnable
, Thread run , ( )
3- ThreadGroup,Thread ThreadGroup ThreadGroup,
threadGroup
:
Thread()
Thread(Runnable target)
Thread(Runnable target,String name)
Thread(String name)
Thread(String group,Runnable target,String name,long stackSize)
4- Thread stacksize stack , stacksize , 0,0 ,
JNI
: ,
5- join
join 6-スレッドデッドロックの確認
7-ロックのカテゴリ
-this:
複数のメソッドがsynchronizedキーワードで修飾されているか、メソッドでthisを指定すると、1つのthisロックが共用されます.つまり、同じ時間にthisを使用したすべてのメソッドがシリアル実行になります.(定義されたメンバー変数はロックパラメータとしてsynchronizedに伝達されるのも同様)
-class:
8-スレッド通信
例:生産者消費者
waitとsleepの違い:
-sleep Thread ,wait Object
-sleep ,wait
-sleep ,wait
-sleep ,wait ( )