![實驗六多線程_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/d3827885-097a-4470-97f6-85d5cd772998/d3827885-097a-4470-97f6-85d5cd7729981.gif)
![實驗六多線程_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/d3827885-097a-4470-97f6-85d5cd772998/d3827885-097a-4470-97f6-85d5cd7729982.gif)
![實驗六多線程_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/d3827885-097a-4470-97f6-85d5cd772998/d3827885-097a-4470-97f6-85d5cd7729983.gif)
![實驗六多線程_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/d3827885-097a-4470-97f6-85d5cd772998/d3827885-097a-4470-97f6-85d5cd7729984.gif)
![實驗六多線程_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/d3827885-097a-4470-97f6-85d5cd772998/d3827885-097a-4470-97f6-85d5cd7729985.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、桂 林 電 子 科 技 大 學(xué)Java應(yīng)用開發(fā) 實 驗 報 告指導(dǎo)教師意見:教 師簽 名成績實驗名稱 多線程 計算機(jī)科學(xué)與工程學(xué)院計算機(jī)科學(xué)與技術(shù)專 業(yè) 班 第 實 驗 小 組姓 名 學(xué) 號 實 驗 日 期 2015 年 11 月 14 日實驗六 多線程一、 實驗?zāi)康?、掌握線程和多線程的概念。 2、掌握創(chuàng)建線程的兩種方法及其區(qū)別。 3、了解線程的啟動、終止、同步、互斥和優(yōu)先級等概念。二、 實驗內(nèi)容1、編寫一個程序,其功能是運(yùn)行之后,其中有一個線程可以輸出20次你的學(xué)號,另一個線程會輸出20次你的姓名。 2、編寫一個圖形界面程序,運(yùn)行之后,讓其中有一個線程能在界面上“實時”顯示系統(tǒng)當(dāng)前時間(精
2、確到秒獲取時間可查詢java.util.Calendar類,它包含了多個用于獲得系統(tǒng)時間的函數(shù))。另讓一個線程可以在界面上提示當(dāng)前系統(tǒng)時間下用戶該做什么工作(例如當(dāng)程序判斷出系統(tǒng)時間現(xiàn)在是8:00到9:00,則提示用戶該上課;現(xiàn)在是23:00到8:00,則提示用戶該休息。 具體測試時可以將時間段限制到秒級,以便及時查看到程序運(yùn)行中提示信息的變化)。三、 分析與設(shè)計1. Thread t1 = new Thread(new Number(), " 學(xué)號:"); / 創(chuàng)建線程1的對象,并通過第二個參數(shù)將其命名為學(xué)號Thread t2 = new Thread(new Name(
3、), " 姓名:"); / 創(chuàng)建線程2的對象,并通過第二個參數(shù)將其命名為姓名使用以下代碼來實現(xiàn)第一個線程,第二個輸出名字的線程代碼類似。class Number implements Runnable public void run() for (int i = 1; i <= 20; i+) System.out.println("第" + i + "次執(zhí)行線程:"+ Thread.currentThread().getName() + "1300310327");s6_1.j1.append("
4、第" + i + "次執(zhí)行線程n"+ Thread.currentThread().getName() + "1300310327n");Thread.yield(); / 暫停當(dāng)前正在執(zhí)行的線程對象,并執(zhí)行其他線程2. 使用一下代碼或得系統(tǒng)時間int y,m,d,h,mi,s;Calendar cal=Calendar.getInstance();y=cal.get(Calendar.YEAR);m=cal.get(Calendar.MONTH)+1;d=cal.get(Calendar.DATE);h=cal.get(Calendar.HO
5、UR_OF_DAY);mi=cal.get(Calendar.MINUTE);s=cal.get(Calendar.SECOND);if else語句來輸出當(dāng)前時間和事件四、 測試數(shù)據(jù)及運(yùn)行結(jié)果多線程的運(yùn)行結(jié)果: 顯示時間和事件:事件會隨著時間的變化實時的顯示在第二個線程哪里 五、 問題與總結(jié)創(chuàng)建線程有兩種方法,一是聲明一個類的同時實現(xiàn)Runnable接口,這個類必須實現(xiàn)一個沒有參數(shù)的run方法,run方法中的代碼即線程所要做的事情。一般操作系統(tǒng)中的多線程指的是在操作系統(tǒng)中同時運(yùn)行幾個應(yīng)用程序,每個應(yīng)用程序占用一個進(jìn)程。實際上這些程序在單處理器的系統(tǒng)中并不是同時運(yùn)行,而是操作系統(tǒng)將系統(tǒng)資源分配
6、給各個程序,每個程序在CPU中交替執(zhí)行,由于CPU的速度比較快,我們就感覺不出各程序是交替執(zhí)行,而感覺多個程序是同時運(yùn)行的。for(int i=0;i+)Calendar cal=Calendar.getInstance(); / 獲得當(dāng)前時間int s=cal.get(Calendar.SECOND);if else 判斷當(dāng)前時間應(yīng)該執(zhí)行什么事件六、 附錄package sy6;import java.awt.FlowLayout;import javax.swing.JFrame;import javax.swing.JTextArea;public class s6_1 extends
7、JFrameJFrame jf = new JFrame("學(xué)號姓名");static JTextArea j1, j2;Thread t1 = new Thread(new Number(), " 學(xué)號:"); / 創(chuàng)建線程1的對象,并通過第二個參數(shù)將其命名為學(xué)號Thread t2 = new Thread(new Name(), " 姓名:"); / 創(chuàng)建線程2的對象,并通過第二個參數(shù)將其命名為姓名public s6_1() jf.setLayout(new FlowLayout();j1 = new JTextArea(40,
8、15);j2 = new JTextArea(40, 15);jf.add(j1);jf.add(j2); / 將2個組件添加到界面上jf.setLocation(200, 150);jf.setVisible(true);jf.pack();jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);t1.start(); / 啟動兩個線程運(yùn)行t2.start();public static void main(String args) s6_1 frm = new s6_1();class Number implements Runnable pub
9、lic void run() for (int i = 1; i <= 20; i+) System.out.println("第" + i + "次執(zhí)行線程:"+ Thread.currentThread().getName() + "1300310327");s6_1.j1.append("第" + i + "次執(zhí)行線程n"+ Thread.currentThread().getName() + "1300310327n");Thread.yield(); / 暫停
10、當(dāng)前正在執(zhí)行的線程對象,并執(zhí)行其他線程class Name implements Runnable public void run() for (int i = 1; i <= 20; i+) System.out.println("第" + i + "次執(zhí)行線程:"+ Thread.currentThread().getName() + "吳錦怡");s6_1.j2.append("第" + i + "次執(zhí)行線程n"+ Thread.currentThread().getName() +
11、 "吳錦怡n");Thread.yield();package sy6;import java.awt.FlowLayout;import java.text.SimpleDateFormat;import java.util.Calendar;import javax.swing.JLabel;import javax.swing.JFrame;import javax.swing.JTextArea;public class s6_2JFrame jf=new JFrame("時間表");static JTextArea jta1,jta2;JLab
12、el jl1 = new JLabel();JLabel jl2 = new JLabel();Thread trda=new Thread1();/線程trdaMyyThread trdb=new MyyThread();/線程trdbpublic s6_2()/生成圖形界面jf.setLayout(new FlowLayout();jta1=new JTextArea(5,20);jta2=new JTextArea(5,20);jf.add(jta1); jf.add(jta2);/將兩個組件添加到界面上jf.setLocation(100,150);jf.setVisible(true
13、);jf.pack();trda.start();/兩個線程啟動trdb.start();public static void main(String args)SuppressWarnings("unused")s6_2 frm=new s6_2();class MyyThread extends Thread/線程1輸出時間public void run()while(true)int y,m,d,h,mi,s;Calendar cal=Calendar.getInstance();y=cal.get(Calendar.YEAR);m=cal.get(Calendar.
14、MONTH)+1;d=cal.get(Calendar.DATE);h=cal.get(Calendar.HOUR_OF_DAY);mi=cal.get(Calendar.MINUTE);s=cal.get(Calendar.SECOND);String s1=Integer.toString(y);String s2=Integer.toString(m);String s3=Integer.toString(d);String s4=Integer.toString(h);String s5=Integer.toString(mi);String s6=Integer.toString(s
15、);s6_2.jta1.setText(s1+"年"+s2+"月"+s3+"日"+s4+"時"+s5+"分"+s6+"秒");SuppressWarnings("unused")class Thread1 extends Thread/線程2輸出該做的事public void run()for(int i=0;i+)Calendar cal=Calendar.getInstance(); int s=cal.get(Calendar.SECOND);if(s>=0&&s<10)s6_2.jta2.setText("休息時間");else if(s>=10&&s<20)s6_2.jta2.setText("學(xué)習(xí)時間");else if(s>=20&&s<30)s6_2.jta2.setText("午飯時間");else if(s>=30&&s<40)s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度人工智能領(lǐng)域競業(yè)禁止服務(wù)合同
- 2025年度工資水平調(diào)查與調(diào)整合同范本
- 2025年度家庭裝修材料供應(yīng)與配送服務(wù)合同
- 2025年度個人住房租賃貸合同
- 2025年度上海公共設(shè)施裝飾裝修項目承包合同范本
- 2025年度兼職教育培訓(xùn)師勞務(wù)合同范本
- 2025年度文化活動策劃購貨合同與二零二五版活動組織購銷合同范本
- 2025年度智能家居系統(tǒng)集成項目廣告設(shè)計制作承包合同
- 2025年度5G通信基站設(shè)備采購合同
- 2025年度國際法律事務(wù)咨詢與代理合同
- 2024年高端裝備制造行業(yè)現(xiàn)狀分析:國家政策確保高端裝備制造行業(yè)有序發(fā)展
- 《帶一本書去讀研:研究生關(guān)鍵學(xué)術(shù)技能快速入門》筆記
- 知識圖譜智慧樹知到答案2024年浙江大學(xué)
- 2024年吉林省吉林市中考一模物理試題(解析版)
- Unit 2 Last weekend C Story time (教學(xué)設(shè)計)人教PEP版英語六年級下冊
- 2024年上海市普通高中學(xué)業(yè)水平等級性考試化學(xué)試卷(含答案)
- DZ∕T 0153-2014 物化探工程測量規(guī)范(正式版)
- 2024年度-美團(tuán)新騎手入門培訓(xùn)
- 化妝品祛痘功效評價
- 高一數(shù)學(xué)寒假講義(新人教A專用)【復(fù)習(xí)】第05講 三角函數(shù)(學(xué)生卷)
- 皮下注射的并發(fā)癥及預(yù)防
評論
0/150
提交評論