1. 程式人生 > >201671010130 2016-2017-2 《Java程序設計》第十七周學習小結

201671010130 2016-2017-2 《Java程序設計》第十七周學習小結

zed 第十七 move spa 總結 繼承 兩個 priority 操作

線程學習總結

  • 線程是單個的執行流
  • 程序一和程序二的區別在於:當程序一已經有動作時,會對用戶的操作排入隊列,不能同時運行兩個動作,程序二則可以也就是實現了程序的並發性。
  • 新建線程有兩個方法:1.用接口實現。2.繼承Thread類。
  • 中斷線程:執行完最後一條語句或者執行過程中捕獲了異常,線程終止,讓出cpu的使用權。
  • 線程的狀態有7種見P635需要註意每種狀態之間的關系,當調用什麽方法時可以改變線程的狀態。(線程狀態實現了各線程輪流使用cpu)
  • getname()獲得線程名字 getpriority()獲得優先級
  • 競爭使用cpu時線程的動態執行特征,並發性,對資源進行充分的使用。共享資源還有對內存的競爭。
  • 程序分為四個模塊(ball,ballcomponent,bounceframe,bounce)

ball類(新建了一個2d橢圓形,定義了move方法)

Ballcomponent類()

Bounce程序應對用戶的操作會排入隊列中,事件響應完以後再響應下一個,程序串行,

BounceThread程序,以線程線索所執行,addball中事件響應動作被定義為線程,並發性

  • 實現同步機制有兩個方法:

1,同步代碼塊:
synchronized(同一個數據){} 同一個數據:就是N條線程同時訪問一個數據
2,同步方法:
public synchronized 數據返回類型 方法名(){}
1,該類的對象可以被多個線程安全的訪問。


2,每個線程調用該對象的任意方法之後,都將得到正確的結果。
3,每個線程調用該對象的任意方法之後,該對象狀態依然保持合理狀態。

201671010130 2016-2017-2 《Java程序設計》第十七周學習小結