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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java第十次作业--多线程

發(fā)布時(shí)間:2024/9/21 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java第十次作业--多线程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、學(xué)習(xí)要點(diǎn)

認(rèn)真看書(shū)并查閱相關(guān)資料,掌握以下內(nèi)容:

  • 理解進(jìn)程和線程的區(qū)別
  • 掌握J(rèn)ava多線程的兩種實(shí)現(xiàn)方式和區(qū)別
  • 理解線程對(duì)象的生命周期
  • 熟悉線程控制的基本方法
  • 掌握J(rèn)ava線程的同步機(jī)制
  • 理解多線程通信

二、作業(yè)要求

發(fā)布一篇隨筆,主要包括以下幾部分的內(nèi)容:

(一)學(xué)習(xí)總結(jié)

1.用思維導(dǎo)圖對(duì)java多線程的學(xué)習(xí)內(nèi)容進(jìn)行總結(jié)。

參考資料: XMind。

2.下面是一個(gè)單線程實(shí)現(xiàn)的龜兔賽跑游戲。

public class TortoiseHareRace {public static void main(String[] args) {int totalStep = 10;int tortoiseStep = 0;int hareStep = 0;boolean[] flags = {true,false};System.out.println("龜兔賽跑開(kāi)始了...");while(tortoiseStep < totalStep && hareStep < totalStep){tortoiseStep++;System.out.println("烏龜跑了"+tortoiseStep+"步...");boolean isHareSleep = flags[((int)(Math.random()*10))%2];if(isHareSleep){System.out.println("兔子睡著了zzzz");}else{hareStep += 2;System.out.println("兔子跑了"+hareStep+"步...");}} } }

閱讀程序,采用實(shí)現(xiàn)Runnable接口的方式用多線程實(shí)現(xiàn)這個(gè)小游戲。下面給出主線程類,補(bǔ)充Tortoise線程類和Hare線程類。

public class TortoiseHareRace { public static void main(String[] args) {Tortoise tortoise = new Tortoise(10);Hare hare = new Hare(10);Thread tortoiseThread = new Thread(tortoise);Thread hareThread = new Thread(hare);tortoiseThread.start();hareThread.start();} }

3.下面的程序是模擬了生產(chǎn)者——消費(fèi)者問(wèn)題,生產(chǎn)者生產(chǎn)10個(gè)數(shù),消費(fèi)者依次消費(fèi)10個(gè)數(shù),運(yùn)行程序,看結(jié)果是否正常?存在什么問(wèn)題?說(shuō)明原因。使用synchronized, wait, notify解決程序出現(xiàn)的問(wèn)題。寫(xiě)出修改的部分程序即可。

class Consumer implements Runnable {private Clerk clerk;public Consumer(Clerk clerk) {this.clerk = clerk;}public void run() {System.out.println("消費(fèi)者開(kāi)始消耗整數(shù)......");// 消耗10個(gè)整數(shù)for(int i = 1; i <= 10; i++) {try {// 等待隨機(jī)時(shí)間Thread.sleep((int) (Math.random() * 3000));}catch(InterruptedException e) {e.printStackTrace();} clerk.getProduct();// 從店員處取走整數(shù)}}} class Producer implements Runnable {private Clerk clerk;public Producer(Clerk clerk) {this.clerk = clerk;}public void run() {System.out.println( "生產(chǎn)者開(kāi)始生產(chǎn)整數(shù)......");// 生產(chǎn)1到10的整數(shù)for(int product = 1; product <= 10; product++) {try {Thread.sleep((int) Math.random() * 3000);}catch(InterruptedException e) {e.printStackTrace();}clerk.setProduct(product); // 將產(chǎn)品交給店員}} } public class ProductTest {public static void main(String[] args) {Clerk clerk = new Clerk();Thread consumerThread = new Thread(new Consumer(clerk)); Thread producerThread = new Thread(new Producer(clerk)); consumerThread.start(); producerThread.start(); } } class Clerk {private int product = -1; // -1 表示目前沒(méi)有產(chǎn)品 // 這個(gè)方法由生產(chǎn)者呼叫public void setProduct(int product) {this.product = product; System.out.printf("生產(chǎn)者設(shè)定 (%d)%n", this.product); } // 這個(gè)方法由消費(fèi)者呼叫public int getProduct() { int p = this.product; System.out.printf("消費(fèi)者取走 (%d)%n", this.product); return p; } }

4.其他需要總結(jié)的內(nèi)容。

(二)實(shí)驗(yàn)總結(jié)

實(shí)驗(yàn)內(nèi)容:
1.模擬三個(gè)老師同時(shí)分發(fā)80分作業(yè),每個(gè)老師相當(dāng)于一個(gè)線程。
2.模擬一個(gè)銀行存款的程序。假設(shè)有兩個(gè)儲(chǔ)戶都去銀行往同一個(gè)賬戶進(jìn)行存款,一次存100,每人存三次。要求儲(chǔ)戶每存一次錢,賬戶余額增加100,并在控制臺(tái)輸出當(dāng)前賬戶的余額。
完成實(shí)驗(yàn)內(nèi)容,代碼上傳到碼云,對(duì)完成實(shí)驗(yàn)內(nèi)容過(guò)程中遇到的問(wèn)題、解決方案和思考等進(jìn)行歸納總結(jié),注意代碼中必須有必要的注釋。
格式如下:
程序設(shè)計(jì)思路:XXXXXXX
類圖結(jié)構(gòu):
問(wèn)題1:XXXXXXX
原因:XXXXXXX
解決方案:XXXXXXX
問(wèn)題2:XXXXXXX
原因:XXXXXXX
解決方案:XXXXXXX

(三)代碼托管(務(wù)必鏈接到你的項(xiàng)目

  • 碼云commit歷史截圖
    上傳實(shí)驗(yàn)項(xiàng)目代碼到碼云,在碼云項(xiàng)目中選擇“統(tǒng)計(jì)-commits”,設(shè)置搜索時(shí)間段,搜索本周提交歷史,并截圖。

三、評(píng)分標(biāo)準(zhǔn)

  • 作業(yè)總分10分,以0.5分為最小打分單位。
  • 程序(4分)
    - 格式不規(guī)范扣1分,程序有錯(cuò)誤扣1-2分。
  • 學(xué)習(xí)總結(jié)(4分)
    - 內(nèi)容豐富,有自己的總結(jié)、思考和論述--3-4分
    - 有自己的總結(jié)和論述--1-2分
    - 大段文字復(fù)制,無(wú)自己的總結(jié)歸納--0分
  • 實(shí)驗(yàn)總結(jié)(2分)
    - 總結(jié)內(nèi)容豐富--2分
    - 條理不清晰,應(yīng)付了事--0-1分
  • 附加分:積極參與博客互評(píng)和互動(dòng),有實(shí)質(zhì)內(nèi)容加0.5-1分
  • 沒(méi)有按時(shí)提交作業(yè),則本次作業(yè)為0分。
  • 作業(yè)抄襲,倒扣10分。

隨筆必須采用MarkDown格式,可參考作業(yè)模板

轉(zhuǎn)載于:https://www.cnblogs.com/hebau-may/p/6909088.html

總結(jié)

以上是生活随笔為你收集整理的Java第十次作业--多线程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。