同時プログラミング1:同時概念と基礎


同時プログラミング:同時概念と基礎
紹介する
                      ,                        、     , 
                (    )。            ,       。
         IO   IO ,      ,CPU          ,     CPU           CPU  。 
           IO   IO         ,CPU              。
                
5 seconds reading file A
2 seconds processing file A
5 seconds reading file B
2 seconds processing file B

          ,      14      

             A      ,   B                A   ,     AB   12 。

マルチスレッドと同時実行
   CPU     ,                ,            ,
              CPU ,        CPU    ,               。

プロセス
                 ,                      。
              ,        。

スレッド
             ,              ,         ,                。

マルチスレッドの利点
1、             
2、           (   web         ,   Servlet  )
3、         
4、          

マルチスレッドがもたらす課題1、セキュリティ問題2、プログラミングの複雑さ
シリアルとパラレル
  :                  ,            ,              ,    

  :        ,                     。

  :                   

  :                 ,       (     ),          
(                       )
      :

       ,    ,            ,                。
       ,    ,         ,       ,        。
       ,    ,          ,        。
              ,           。

同時発生条件1、マルチスレッドシーン2、存在リソース共有(ローカル変数はスレッドプライベート、メンバ変数はスレッド共有)3、共有リソースは状態あり(状態あるという意味は簡単に理解するとその変化がプログラムやビジネスロジックに影響を与える)
Javaとマルチスレッド
Java             ,GC     (    ),main        (   )

両板斧を併発する
                    ,         
1、            (Synchronized   )
2、     (ReentranLock)

  : 
             JVM   ,                    ,         。

         ,           。              ,        。

リファレンス
1、http://tutorials.jenkov.com/java-concurrency/benefits.html 2、同時プログラミング実戦