日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

201621123080《Java程序设计》第十一周学习总结

發布時間:2023/11/29 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201621123080《Java程序设计》第十一周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

201621123080《Java程序設計》第十一周學習總結

1. 本周學習總結

1.1 以你喜歡的方式(思維導圖或其他)歸納總結多線程相關內容。

2. 書面作業

本次PTA作業題集多線程

1. 源代碼閱讀:多線程程序BounceThread

1.1 BallRunnable類有什么用?為什么代碼中需要調用Thread.sleep進行休眠?

實現Runnable接口;
休眠讓其他線程執行,減少CPU占用的時間

1.2 Ball.java只做了兩件事,這兩件事分別是什么?BallComponent對象是干什么的?其內部的ArrayList有什么用?程序運行過程中,生成了幾個BallComponent對象?該程序使用了多線程技術,每個小球是分別在不同的線程中進行繪制嗎?

小球的移動,獲得小球的x,y坐標;添加小球,并在畫面上顯示;
存放小球;生成一個BallComponent對象;在不同線程執行

2. 實驗總結:題集(多線程)

2.1 題目:Thread、PrintTask、Runnable與匿名內部類。

并回答:a)通過定義Runnable接口的實現類來實現多線程程序比通過繼承自Thread類實現多線程程序有何好處?b) 6-1,6-3,6-11實驗總結。
a)實現Runnable接口可以一個任務多個線程執行,繼承只能繼承一個類有很大的局限。

b)
6-2 繼承Thread類即可;
6-3 的Runnable 要 new 否則會提示靜態資源無法訪問動態資源;
6-11 實現runnable接口

2.2 使用Lambda表達式改寫6-3

改寫的代碼如下:

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();} }

2.3 題目:6-2(Runnable與停止線程)。回答:需要怎樣才能正確地停止一個運行中的線程?

暴力方法stop,但不推薦;
用 while(flag) ,通過改變flag的值來使循環結束從而結束這個線程;
6-2 忘記判斷空耽誤了時間

3. 互斥訪問

3.1 修改TestUnSynchronizedThread.java源代碼使其可以同步訪問。(關鍵代碼截圖,需出現學號)

4. 互斥訪問與同步訪問

完成題集6-4(互斥訪問)與6-5(同步訪問)

4.1 除了使用synchronized修飾方法實現互斥同步訪問,還有什么辦法可以使用synchronized實現互斥同步訪問,使用代碼說明(請出現相關代碼及學號)?

同步代碼塊;

4.2 同步代碼塊與同步方法有何區別?

同步方法是方法名用synchronized修飾;
同步代碼塊只在內部使用synchonrized加鎖,范圍小;

4.3 實現互斥訪問的原理是什么?請使用對象鎖概念并結合相應的代碼塊進行說明。當程序執行synchronized同步代碼塊或者同步方法時,線程的狀態是怎么變化的?

有鎖的線程執行,其余的線程無法打擾,且在Lock Pool等待鎖的釋放;
無鎖線程進入Look Pool狀態,等待鎖被釋放。鎖釋放后,線程進入Runnable狀態,線程執行完畢釋放鎖。如此循環。

4.4 Java多線程中使用什么關鍵字實現線程之間的通信,進而實現線程的協同工作?

用等wait,通知notify,互斥synchronized實現線程之間的通信;

5. 線程間的合作:生產者消費者問題

5.1 運行MyProducerConsumerTest.java。正常運行結果應該是倉庫還剩0個貨物。多運行幾次,觀察結果,并回答:結果正常嗎?哪里不正常?為什么?

運行結果是混亂的,反復出現無貨、已滿;
線程處理數據的速度不同,導致混亂;

5.2 使用synchronized, wait, notify解決該問題(關鍵代碼截圖,需出現學號)

6. 面向對象設計作業-圖書館管理系統

6.1 系統的功能模塊表格,表格中體現出每個模塊的負責人。

類負責人功能
Main朱匯盈控制程序
User、BookInfo劉思遠用戶信息、圖書信息
BookList陳劍波書庫管理

6.2 運行視頻

6.3 講解自己負責的模塊,并粘貼自己負責模塊的關鍵代碼(出現學號及姓名)。

所有圖書存儲在 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)

3.碼云及PTA

題目集:多線程

3.1. 碼云代碼提交記錄

在碼云的項目中,依次選擇“統計-Commits歷史-設置時間段”, 然后搜索并截圖
必須出現幾個要素:提交日期-用戶名(姓名與學號)-不提交說明

3.2 截圖"多線程"PTA提交列表

需要有兩張圖(1. 排名圖。2.PTA提交列表圖)

3.3 統計本周完成的代碼量

需要將每周的代碼統計情況融合到一張表中。

周次總代碼量新增代碼量總文件數新增文件數
10000
20000
34724721111
44720110
5468-4121
610435753018
7241713745121
8512927128332
95284155896
105714430989
1159952811057
1263653701149

轉載于:https://www.cnblogs.com/boxker/p/7955495.html

總結

以上是生活随笔為你收集整理的201621123080《Java程序设计》第十一周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。