版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上J2EE程序設(shè)計(jì)2017年春作業(yè)第一次作業(yè)(5分)多線程并發(fā)查找:Math類中的隨機(jī)函數(shù)產(chǎn)生10000個(gè)隨機(jī)數(shù)并存于數(shù)組。從鍵盤接收一個(gè)數(shù)x,然后用多線程并發(fā)查找x在數(shù)組中的所有下標(biāo)位置。 查找線程的構(gòu)造函數(shù)形參如下所示: 數(shù)組名, 查找范圍(起始下標(biāo)、結(jié)束下標(biāo)) 每個(gè)線程體在查找范圍內(nèi)順序查找,并將該范圍內(nèi)所有找到的x的下標(biāo)記錄到共享的一個(gè)內(nèi)存緩沖區(qū)。創(chuàng)建上述線程類的四個(gè)實(shí)體對(duì)象,用四個(gè)線程將數(shù)組分成不重疊的4段進(jìn)行查找,如果查找失敗,則內(nèi)存緩沖區(qū)為空,輸出相應(yīng)信息;否則順序輸出緩沖區(qū)中的所有下標(biāo)位置(注意:這些下標(biāo)位置并不是由小到大順序排列的)。輸出結(jié)果:(上面利
2、用緩沖區(qū)做的,下面是通過(guò)管道的輸出)代碼:import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;import java.util.Scanner;public class Work1 public int getInts()int ii = new int10000;for(int i=0;i<10000;i+)iii = (int)(Math.random()*1000);return ii;public static void main(String ar
3、g) throws InterruptedException Work1 wk = new Work1();int ii = wk.getInts();int x =0;System.out.println("請(qǐng)輸入X的值:");Scanner scanner = new Scanner(System.in);x = scanner.nextInt();BUF bf = new BUF();MyThread t1 = new MyThread(ii,0,1999); t1.setX(x); t1.setBuf(bf);MyThread t3 = new MyThread(i
4、i,2000,3999); t3.setX(x); t3.setBuf(bf);MyThread t2 = new MyThread(ii,4000,5999); t2.setX(x); t2.setBuf(bf);MyThread t4 = new MyThread(ii,6000,7999); t4.setX(x); t4.setBuf(bf);t1.start(); t2.start(); t3.start(); t4.start();t1.join(); t2.join(); t3.join(); t4.join();bf.printIndexs();System.out.printl
5、n("n通過(guò)管道實(shí)現(xiàn) 4個(gè)發(fā)送線程,2個(gè)接受線程");PipedOutputStream out = new PipedOutputStream();PipedInputStream in = new PipedInputStream();try out.connect(in); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();int n = 4 , m=2;Send se = Send.init(out,n);Receive re = Receive.init(in, m
6、);for(int i = 0 ;i < n;i+)sei = new Send(ii,i*2000,i*2000+1999);sei.setX(x); sei.setBuf(bf);sei.start();for(int i = 0;i<m;i+)rei.start();專心-專注-專業(yè)public class BUF private int indexs = new int10000; private int index = -1;private boolean isPutting = false;public BUF() super();/ TODO Auto-generat
7、ed constructor stubpublic BUF(int indexs, int index) super();this.indexs = indexs;this.index = index;synchronized public void putIndex(int ind)if(isPutting)trywait();catch(InterruptedException e)isPutting = true;this.indexs+index = ind;isPutting = false;notify();public void printIndexs()if(index = -
8、1)System.out.println("沒(méi)有找到");else for(int i = 0;i<=this.index;i+)System.out.print(indexsi+"t");package work;public class MyThread extends Threadprivate BUF bf = new BUF();private int indexs;private int start;private int end;private int x;public MyThread(int indexs,int s,int e,
9、int x,BUF bf) super();this.indexs = indexs;this.start = s;this.end = e;this.x = x;this.bf = bf;public MyThread(int indexs,int s,int e) super();this.indexs = indexs;this.start = s;this.end = e;public void setX(int x)this.x = x;public void setBuf(BUF bf)this.bf = bf;public void run()for(int i = this.s
10、tart ;i<this.end;i+)if(this.indexsi = this.x)bf.putIndex(i);/System.out.println("OK");import java.io.IOException;import java.io.PipedOutputStream;public class Send extends Threadprivate BUF bf = new BUF();private int indexs;private int start;private int end;private int x;int no; byte b;
11、public void setNo(int no)this.no = no;b = new byte4;public Send(int indexs,int s,int e,int x,BUF bf) super();this.indexs = indexs;this.start = s;this.end = e;this.x = x;this.bf = bf;b = new byte4;public Send() super();/ TODO Auto-generated constructor stubpublic Send(int indexs,int s,int e) super();
12、this.indexs = indexs;this.start = s;this.end = e;b = new byte4;public void setX(int x)this.x = x;public void setBuf(BUF bf)this.bf = bf;public void run()try for(int i = this.start ;i<this.end;i+)if(this.indexsi = this.x)bf.putIndex(i);/System.out.println("OK");Chg.toBA(i, b);out.write(b
13、);try sleep(1); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();if(count>1) count-;else out.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();static PipedOutputStream out;static int count = 0;public static Send init(PipedOutput
14、Stream pos , int n)Send se = new Sendn;count = n;out = pos;for(int i = 0;i<se.length;i+)sei = new Send();return se;import java.io.PipedInputStream;public class Receive extends Threadbyte b;public Receive() b = new byte4;public void run()trywhile(true)if(in.read(b) = -1)break;int x = Chg.toInt(b);System.out.print(x+"t");/in.close();catch(Exce
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年湖州公交車從業(yè)資格證考試題庫(kù)
- 2024年廣州道路運(yùn)輸客運(yùn)從業(yè)資格證考試題庫(kù)及答案
- 公司建議書范文9篇
- 國(guó)開(kāi)學(xué)習(xí)網(wǎng)電子支付與安全形考一答案
- 滬科版七年級(jí)下冊(cè)整式乘法與因式分解試卷
- 青島市第十五屆職業(yè)技能大賽技術(shù)文件-汽車維修工(學(xué)生組)
- 西藏山南市完全中學(xué)2023-2024學(xué)年下學(xué)期八年級(jí)數(shù)學(xué)期末測(cè)試試題
- 港口碼頭鉤機(jī)租賃合同
- 幼兒園游樂(lè)設(shè)施電工聘用
- 浙江省博物館聘用合同簽訂要點(diǎn)
- 火災(zāi)自動(dòng)報(bào)警及其消防聯(lián)動(dòng)系統(tǒng)技術(shù)規(guī)格書
- 木門窗施工方案
- 2024-2025學(xué)年八年級(jí)語(yǔ)文上冊(cè)期末專項(xiàng)復(fù)習(xí):綜合性學(xué)習(xí)+口語(yǔ)交際【考題猜想】原卷版
- 逐夢(mèng)芳華-吉林省松原市前郭爾羅斯蒙古族自治縣南部學(xué)區(qū)三校2024-2025學(xué)年九年級(jí)上學(xué)期11月期中道德與法治試題(含答案)
- 四川省成都市九縣區(qū)2024-2025學(xué)年高一上學(xué)期期中考試數(shù)學(xué)試題(含答案)
- 2024秋國(guó)開(kāi)《四史通講》期末大作業(yè)試題B答案(第1套)
- 2024年8月CCAA國(guó)家注冊(cè)審核員《管理體系認(rèn)證基礎(chǔ)》考試題目含解析
- 戶外廣告安裝施工方案
- 鈉離子電池低成本硬碳負(fù)極關(guān)鍵技術(shù)開(kāi)發(fā)-2024-10-技術(shù)資料
- 2024年度陜西省安全員之A證(企業(yè)負(fù)責(zé)人)提升訓(xùn)練試卷B卷附答案
- 2025屆廣東省珠海市紫荊中學(xué)高二數(shù)學(xué)第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論