本次PTA做業題集多線程java
實現Runnable接口;
休眠讓其餘線程執行,減小CPU佔用的時間多線程
小球的移動,得到小球的x,y座標;添加小球,並在畫面上顯示;
存放小球;生成一個BallComponent對象;在不一樣線程執行學習
並回答:a)經過定義Runnable接口的實現類來實現多線程程序比經過繼承自Thread類實現多線程程序有何好處?b) 6-1,6-3,6-11實驗總結。
a)實現Runnable接口能夠一個任務多個線程執行,繼承只能繼承一個類有很大的侷限。線程
b)
6-2 繼承Thread類便可;
6-3 的Runnable 要 new 不然會提示靜態資源沒法訪問動態資源;
6-11 實現runnable接口設計
改寫的代碼以下:3d
public class Main { public static void main(String[] args) { final String mainThreadName = Thread.currentThread().getName(); Thread t1 = new Thread(); Runnable runnable = ()->{ System.out.println(mainThreadName); System.out.println(t1.getClass().getInterfaces()); System.out.println(Arrays.toString(t1.getClass().getInterfaces())); }; new Thread(runnable).start(); } }
暴力方法stop,但不推薦;
用 while(flag) ,經過改變flag的值來使循環結束從而結束這個線程;
6-2 忘記判斷空耽誤了時間code
完成題集6-4(互斥訪問)與6-5(同步訪問)component
同步代碼塊;視頻
同步方法是方法名用synchronized修飾;
同步代碼塊只在內部使用synchonrized
加鎖,範圍小;對象
有鎖的線程執行,其他的線程沒法打擾,且在Lock Pool
等待鎖的釋放;
無鎖線程進入Look Pool
狀態,等待鎖被釋放。鎖釋放後,線程進入Runnable
狀態,線程執行完畢釋放鎖。如此循環。
用等wait
,通知notify
,互斥synchronized
實現線程之間的通訊;
運行結果是混亂的,反覆出現無貨、已滿;
線程處理數據的速度不一樣,致使混亂;
類 | 負責人 | 功能 |
---|---|---|
Main | 朱匯盈 | 控制程序 |
User、BookInfo | 劉思遠 | 用戶信息、圖書信息 |
BookList | 陳劍波 | 書庫管理 |
全部圖書存儲在 list裏:
private static ArrayList<BookInfo> list = new ArrayList<BookInfo>();
//按書號、名稱查找 public static int searchNo(long no) public static int[] searchNameAll(String name) //借書和還書 public static boolean borrow(long no,long boNo) public static void returnBook(long no,long boNo) //刪除、添加、修改書籍 public static void del(long no) public static void add(String name,long no,String author,boolean isBorrow,long boNo) public static void changeList(String name,long no,String author,boolean isBorrow,long boNo) //顯示書籍 public static void show() public static BookInfo getOne(int po)
題目集:多線程
在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖
必須出現幾個要素:提交日期-用戶名(姓名與學號)-不提交說明
須要有兩張圖(1. 排名圖。2.PTA提交列表圖)
須要將每週的代碼統計狀況融合到一張表中。
周次 | 總代碼量 | 新增代碼量 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 472 | 472 | 11 | 11 |
4 | 472 | 0 | 11 | 0 |
5 | 468 | -4 | 12 | 1 |
6 | 1043 | 575 | 30 | 18 |
7 | 2417 | 1374 | 51 | 21 |
8 | 5129 | 2712 | 83 | 32 |
9 | 5284 | 155 | 89 | 6 |
10 | 5714 | 430 | 98 | 9 |
11 | 5995 | 281 | 105 | 7 |
12 | 6365 | 370 | 114 | 9 |