1. 程式人生 > 其它 >P3286 [SCOI2014]方伯伯的商場之旅 題解

P3286 [SCOI2014]方伯伯的商場之旅 題解

一、什麼是Process(程序)與Thread(執行緒)
  1.說起程序,就不得不說下程式。程式是指指令和資料的有序集合,其本身沒有任何執行的含義,是一個靜態的概念
  2.而程序則是執行程式的一次執行過程,它是一個動態的概念,是系統資源分配的單位
  3.通常在一個程序中可以包含若干個執行緒,當然一個程序中至少有一個執行緒,不然沒有存在的意義,執行緒是CPU排程和執行的單位
  4.很多執行緒是模擬出來的,真正的多執行緒是指有多個cpu,即多核,如伺服器,如果模擬出來的多執行緒,即在一個cpu的情況下,在同一個時間點,cpu只能執行一個程式碼,因為切換的很快,所以就有同時執行的錯局
二、執行緒的概念
  1.執行緒就是獨立的執行路徑
  2.在程式執行時,即使沒有自己建立執行緒,後臺也會有多個執行緒,如主執行緒,gc執行緒
  3.main()稱之為主執行緒,為系統的入口,用於執行整個程式
  4.在一個程序中,如果開闢了多個執行緒,執行緒的執行由排程器安排排程,排程器是與作業系統緊密相關的,先後順序是不能認為的干預的
  5.對同一份資源操作時,會存在資源搶奪的問題,需要加入併發控制
  6,執行緒會帶來額外的開銷,如cpu排程時間,併發控制開銷
  7.每個執行緒在自己的工作記憶體互動,記憶體控制不當會造成資料不一致。
三、執行緒的三種建立方式
  1.Thread class :繼承Thread類(重點)
    ①自定義執行緒類繼承Thread類
    ②重寫run()方法,編寫執行緒執行體
    ③建立執行緒物件,呼叫start()方法啟動執行緒。

    

 

 


  2.Runnable介面 :實現Runnable介面(重點)
  3.Callable介面 :實現Callable介面