本次PTA做業題集多線程
java
Thread.sleep
進行休眠?答:git
Runnable
接口,以便於實現多線程,(實現多線程另外一方式,繼承Thread
類);Thread.sleep
方法強制當前正在執行的線程進入休眠(暫停執行),以減慢線程。答:多線程
move()
方法使用了Rectangle2D
類規劃了小球的移動軌跡;getShape()方法
使用了Ellipse2D.Double
以double精度定義橢圓(即得到小球的形狀)。BallComponent
中的add
方法用於添加新的小球,paintComponent
用於繪製小球;ArrayList
用於存儲小球。BallComponent
對象comp
;addBall()
方法內,每添加一個新的小球后會執行一次t.start()
,因此小球是分別在不一樣的線程中進行繪製的。並回答:a)經過定義Runnable
接口的實現類來實現多線程程序比經過繼承自Thread
類實現多線程程序有何好處?b) 6-1,6-3,6-11實驗總結。
答:性能
MyThread
類的構造方法將參數n傳遞給run
方法;Thread.currentThread().getName()
方法用於獲取當前正在執行的線程的名稱,所以要獲取哪一個線程的名稱,就要把這句代碼放到對應的線程內;Thread
類來實現多線程程序則沒法再繼承其餘的父類;可是以實現接口來講,一個類能夠實現多個接口。答:使用退出標誌,定義一個boolean
型的標誌位,在運行過程當中判斷標誌是否符合退出條件。6-2中即是將boolean型的flag
變量設置爲while
循環的判斷條件,當flag爲true時,則循環條件while(!flag)
爲false,中止線程。學習
變量id爲共享資源,在對變量id進行操做的方法用synchronized
對象鎖修飾
線程
完成題集6-4(互斥訪問)與6-5(同步訪問)設計
同步代碼塊:
3d
答:同步方法直接在方法上加synchronized實現加鎖,同步代碼塊則在方法內部加鎖,同步方法鎖的範圍比較大,而同步代碼塊範圍要小點,通常同步的範圍越大,性能就越差,通常須要加鎖進行同步的時候,範圍越小越好,這樣性能更好。code
答:
如上圖,x爲三個線程的共享資源,當三個線程不發生衝突時,理論上應獲得的輸出爲30,而此處未對使用共享資源的add
方法以synchronized
修飾,致使線程有可能產生衝突。當使用了synchronized
修飾add
方法後,等因而爲資源x加上了一個鎖;當線程t1執行到synchronized同步代碼塊或者同步方法時,,此時t1將鎖取走,得到了對x進行操做的權限,因爲鎖只有一個,t2,t3此時就沒法調用x資源,只能等t1結束線程將鎖歸還後,t2或t3得到了這個鎖後,才能開始對x執行操做。component
答:
答: 結果不正常,由於入庫和出庫的速度不同,因此有可能在庫空時就執行出庫操做,也有可能在庫滿時執行入庫操做。
synchronized, wait, notify
解決該問題(關鍵代碼截圖,需出現學號)類 | 功能 | 負責人 |
---|---|---|
User | Status(身份權限)、id、password屬性及構造方法、登錄、註冊 | 本次圖書館系統全部功能實現爲獨立完成 |
GeneralUser | 普通用戶構造方法,繼承User類,賦身份generaluser | 周彪 201621123010 |
Admin | 管理員構造方法,繼承User類,賦身份admin | |
Books | 書籍構造方法、賦書籍名稱 | |
Library | 上架新書、下架舊書、借書、還書、展現圖書館書籍信息、展現個人書包書籍信息、用戶\管理員界面 (根據身份權限不一樣展現不一樣界面,賦予不一樣方法的操做權限) | |
Main | 調用各方法 |
本次實驗爲獨立完成。
實驗各方法內容其實均相似,登陸、註冊、上/下架書籍以及借閱歸還書籍均爲在文件上操做,基本上都是實現對文件的寫入以及讀取便可,本次實驗對文件的操做都是先將文件信息讀入ArrayList,再對ArrayList進行操做,操做結束後有必要的話再將ArrayList存儲的數據寫回文件;本次實驗須要考慮的是針對圖書館的使用者不一樣,,對應的權限也不一樣,因此須要在登陸時對用戶進行身份判斷,根據身份顯示相應的用戶界面以及賦予相應的操做權限,另外爲了區分開不一樣身份的信息,使用了兩個存儲用戶信息的文件,一個存儲管理員的帳號密碼,一個存儲普通用戶的帳號密碼,根據身份打開對應文件查找是否存在輸入的帳號信息。註冊時也是這樣,根據身份將身份信息存入不一樣的文件內。而存儲圖書的文件這裏也用了兩個,一個爲存儲圖書館內的書籍信息,一個存儲用戶的書包內書籍信息,可是實際上須要更多的用戶書包文件,爲每個用戶都分配一個書包文件,實驗只是爲了方便操做才只用一個。
點擊查看代碼
題目集:多線程
須要有兩張圖(1. 排名圖。2.PTA提交列表圖)
須要將每週的代碼統計狀況融合到一張表中。
周次 | 總代碼量 | 新增代碼量 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 90 | 90 | 5 | 5 |
2 | 322 | 232 | 11 | 6 |
3 | 652 | 330 | 16 | 5 |
4 | 946 | 294 | 21 | 5 |
5 | 1347 | 401 | 26 | 5 |
6 | 1591 | 244 | 28 | 2 |
7 | 2118 | 527 | 31 | 3 |
8 | 2627 | 509 | 39 | 8 |
9 | 2912 | 285 | 42 | 3 |
10 | 3171 | 259 | 50 | 8 |
11 | 3830 | 659 | 58 | 8 |