JAVA入门_多线程_邮局派发信件
生活随笔
收集整理的這篇文章主要介紹了
JAVA入门_多线程_邮局派发信件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JAVA入門_多線程_郵局派發信件
Postman
package cn.campsg.java.experiment.entity;public class Postman {private String postName;private int mailCount;public String getPostName() {return postName;}public void setPostName(String postName) {this.postName = postName;}public int getMailCount() {return mailCount;}public void setMailCount(int mailCount) {this.mailCount = mailCount;}public Postman() {}public Postman(String postName, int mailCount) {this.postName = postName;this.mailCount = mailCount;}}SendMails
package cn.campsg.java.experiment.entity;public class SendMails extends Thread {private Postman post;public Postman getPost() {return post;}public void setPost(Postman post) {this.post = post;}public SendMails() {}@Overridepublic void run() {int count = 0;while (post.getMailCount() > 0) {System.out.println(post.getPostName() + " 還有" + post.getMailCount() + "封信。開始送第 " + (++count) + "封信!");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}post.setMailCount(post.getMailCount() - 1);}System.out.println(post.getPostName() + " 已完成所有郵件派送!。");} }MainClass
package cn.campsg.java.experiment;import cn.campsg.java.experiment.entity.Postman; import cn.campsg.java.experiment.entity.SendMails;public class MainClass {public static void main(String[] args) {System.out.println("郵遞員接收派發任務后開始送信:");for (int i = 0; i < 5; i++) {int mCount = (int) (1 + Math.random() * 10);Postman postman = new Postman("郵遞員" + i, mCount / 2);SendMails sendMails = new SendMails();sendMails.setPost(postman);new Thread(sendMails).start();}} }題目描述
本實驗要求:以郵局送件為背景,模擬多人同時派發郵件,體驗多線程的實際應用。業務說明: 1.1. 本實驗以實際生活中郵局派發郵件為業務背景。 1.2. 通常郵局每天都會有大量的郵件需要郵遞員派發。 1.3. 根據郵件的性質以及發往地點的不同,安排不同人送件。 1.4. 為了快速處理好每日的發件工作,郵局需要安排多人同時發件。 1.5. 每個發件人每日定量發件,并將郵件逐一派發給不同收件人。 1.6. 本業務關鍵概念:郵遞員、派件數量以及同時發件。 創建工程并配置環境: 2.1. 創建實驗工程 2.2. 創建包 2.3. 創建包 創建郵遞員實體類: 3.1. 創建獎項類:Postman。 3.2. 為Postman類創建屬性,要求如下: 在這里插入圖片描述 3.3. 為Postman類創建0參構造器。 3.4. 為Postman類創建2參構造器: 1) 構造器2參數分別為郵遞員姓名和派送數量; 2) 在構造器內為對應的屬性進行賦值:屬性名等于對應參數。 創建郵局送信業務類: 4.1. 創建送信類:SendMails。 1) SendMails類需要繼承線程類Thread,并且重寫run方法。 4.2. 為SendMails類創建代表郵遞員的屬性,要求如下: 在這里插入圖片描述 4.3. 為SendMails類創建0參構造器: 4.4. 為SendMails類實現發件方法,即重寫接口run方法,要求如下: 本方法的業務邏輯實現要求如下: 1) 模擬郵遞員送件工作; 2) 每送完一件暫停1秒,再開始下一次送件工作; 3) 送件時顯示當前郵遞員的代送信件數量,以及開始送第幾封信件; 4) 每送完一件,更新郵遞員的待送信件數量; 5) 當完成派件工作時,在控制臺輸出如下信息: 郵遞員姓名+“已完成所有郵件派送!”。 顯示同時派發信件結果: 5.1. 創建主類:MainClass; 5.2. 為MainClass創建入口主方法:main; 5.3. 在main中,創建5個不同的郵遞員,并設置一定的派件量; 5.4. 在main中,創建5個驅動郵遞員發件的對象,并為其配置郵遞員; 5.5. 在main中,啟動5個驅動郵遞員發件的對象,開始模擬同時發件。總結
以上是生活随笔為你收集整理的JAVA入门_多线程_邮局派发信件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 16版.就诊时排队叫号
- 下一篇: 判断是否在数组中,若在输入其下标,否则输