線程操作范例

實例要求:

  設計一個線程操作類,要求可以產生三個線程對象,并可以分別設置三個線程的休眠時間。如下所示:

問怎么設計?

分析

  從之前學習知道,線程的實現有兩種方式,一種是繼承Thread類,另一種是實現Runnable接口。而且類中應保存線程名稱和休眠時間屬性。

1,通過Thread類實現。

  在Thread類中直接存在name屬性。所以不用定義name屬性,直接在子類構造方法通過super(name)方法設置即可。

class MyThread extends Thread{private int time ;    //time要自己定義public MyThread(String name,int time){super(name) ;    // 設置線程名稱,因為Thread本身存在name屬性,所以不用定義name屬性,直接在子類構造方法通過super(name)方法設置即可this.time = time ;    // 設置休眠時間
    }public void run(){try{ Thread.sleep(this.time) ;    // 休眠指定的時間}catch(InterruptedException e){e.printStackTrace() ;    //打印錯誤。}System.out.println(Thread.currentThread().getName() + "線程,休眠"+ this.time + "毫秒。") ;}
};
public class ExecDemo01{public static void main(String args[]){MyThread mt1 = new MyThread("線程A",10000) ;    // 定義線程對象,指定休眠時間MyThread mt2 = new MyThread("線程B",20000) ;    // 定義線程對象,指定休眠時間MyThread mt3 = new MyThread("線程C",30000) ;    // 定義線程對象,指定休眠時間mt1.start() ;    // 啟動線程mt2.start() ;    // 啟動線程mt3.start() ;    // 啟動線程
    }
};

運行結果:

一個個休眠多少秒后一個個執行線程。

線程A線程,休眠10000毫秒。
線程B線程,休眠20000毫秒。
線程C線程,休眠30000毫秒。

2,使用Runnable接口實現。

  則類中是沒有name屬性的,所以應該單獨建立一個name屬性,以保存線程的名稱。

  

class MyThread implements Runnable{private String name ;private int time ;public MyThread(String name,int time){this.name = name ;    // 設置線程名稱this.time = time ;    // 設置休眠時間
    }public void run(){try{  Thread.sleep(this.time) ;    // 休眠指定的時間}catch(InterruptedException e){e.printStackTrace() ;}System.out.println(this.name + "線程,休眠"+ this.time + "毫秒。") ;}
};
public class ExecDemo02{public static void main(String args[]){MyThread mt1 = new MyThread("線程A",10000) ;    // 定義線程對象,指定休眠時間MyThread mt2 = new MyThread("線程B",20000) ;    // 定義線程對象,指定休眠時間MyThread mt3 = new MyThread("線程C",30000) ;    // 定義線程對象,指定休眠時間new Thread(mt1).start() ;    // 啟動線程new Thread(mt2).start() ;    // 啟動線程new Thread(mt3).start() ;    // 啟動線程
    }
};

?

轉載于:https://www.cnblogs.com/alsf/p/5672216.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256807.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256807.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256807.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習筆記(55):Python實戰編程-Scrollbar

立即學習:https://edu.csdn.net/course/play/19711/343118?utm_sourceblogtoedu 1.滾動條ScrollBar: 當列表內容項的內容過多時,就需要使用到這個滾動條來進行拖動顯示更多的其他選項;一般滾動條是和listbox配對使用的 2.注意事項&#xff…

【轉】Unity3D研究院之使用Xamarin Studio調試Unity程序

如果你是在windows上開發,就無視這篇文章吧。 為什么要用Xamarin Studio 你可以看看我之前的文章 http://www.xuanyusong.com/archives/2683 unity4.x 和 unity5.x都可以用Xamarin Studio 來調試,親測! 先下載插件:http://files.u…

配置SMB共享 、 配置NFS共享

虛擬機,均要檢測1. Yum是否可用2. 防火墻默認區域修改為trusted3. IP地址是否配置########################################################################################################### samba 文件共享(共享文件夾) Samba 軟件…

stdout標準輸出、stderr標準錯誤輸出 標準輸入、標準輸出、標準錯誤輸出分別被定義為0、1、2。

$ make > compile.log 2>&1 首先將標準錯誤輸出也重定向到標準輸出中,再將標準輸出重定向到 compile.log 這個文件中。這樣我們就可以將所有的輸出都存儲到文件中了。

centos7 和centos 6的一些區別

平時的我們基本都用CentOS 6 。但是偶爾遇到的就記錄下來了,與大家分享。防火墻[CentOS 6] iptables[CentOS 7] firewalld在7中開啟80端口 firewall-cmd --zonepublic --add-port80/tcp --permanent #出現success表明添加成功復制代碼命令含義&#xff1a…

systemverilog 起步

轉一篇Systemverilog的一個牛人總結: http://blog.sina.com.cn/s/blog_5e9b181a010188re.html 1、合并數組和非合并數組 1)合并數組: 存儲方式是連續的,中間沒有閑置空間。 例如,32bit的寄存器,可以看成是4…

學習筆記(56):Python實戰編程-Menu

立即學習:https://edu.csdn.net/course/play/19711/343119?utm_sourceblogtoedu 1.菜單menu: 1)彈出式菜單,類似與電腦桌面右擊彈出的菜單成為彈出菜單; 2)窗體式菜單:類似于word上面的菜單欄 2.窗體菜單創建的步驟…

SystemCenter2012SP1實踐(19)集成WSUS更新服務器2012

今天我們的任務是配置一臺WSUS(Windows更新服務器),以方便后期通過"基線"與其組合,完成虛擬機的系統補丁升級。WSUS是Windows系統運維自動化的一個重要組成部分,通過它,能夠節省我們很多的運維時…

像元尺寸計算

像元尺寸 X 總像素大小 感光芯片尺寸(圖像區域大小)

win7右鍵點擊文件夾進入命令窗口方法

方法一:按住shift鍵,鼠標右擊,會出現"在此處打開命令窗口";方法二:修改注冊表,為鼠標右鍵添加打開命令行功能;(1)將下列內容賦值到記事本中,并保存為.reg文件。Windows Re…

教你學會Linux/Unix下的vi文本編輯器

vi編輯器是Unix/Linux系統管理員必須學會使用的編輯器。看了不少關于vi的資料,終于得到這個總結。首先,記住vi編輯器的兩個模式:1、命令模式2、編輯模式。在一個UNIX/Linux的shell命令或者一個以斜杠(/)、問號&#xf…

C++函數返回引用的含義

引用的意思就是說返回變量的地址而非變量本身。這樣子函double數結束之后存儲返回值的內存單元不會被銷毀,保留了它的地址。 例如下面這個例子: int a1,b; ba; b; 這個例子里執行完之后a為1,而b為2。 但這個例子: int a1; int *b;…

LintCode: 3 Sum

C 把3個數求和&#xff0c;轉變為2個數求和 1. 把數組排序 2. 注意過濾重復值 3. 從前到后遍歷&#xff0c;游標i 4. 從后邊數中找start &#xff0b; end &#xff1d; -arr[i]的2 sum 5. start &#xff0b; end < -arr[i], start 6. start end > -arr[i], end-- 7. s…

$* $@ $# $? $$ $! $0 $_

特殊參數&#xff1a; [xiluhuavm-xiluhua][~]$ set one two three  #使用set命令設置位置參數[xiluhuavm-xiluhua][~]$ echo $*        #打印所有位置參數 one two three[xiluhuavm-xiluhua][~]$ echo $        #打印所有位置參數 one two three[xiluhuavm-…

最優化課堂筆記03:整數規劃

二、整數規劃問題的求解方法&#xff1a;&#xff08;重點&#xff1a;分枝定界法&#xff09; 1.割平面法 1&#xff09;基本思想 2&#xff09;求解步驟 2&#xff09;重點&#xff1a;分枝定界法&#xff08;極大化的問題&#xff09;考試不會分很多次枝&#xff0c;用圖解…

CodeIgniter 2.X 于 PHP5.6 兼容錯誤

本篇文章由&#xff1a;http://xinpure.com/codeigniter-2-x-to-php5-6-compatible-error/ CI 3.0 已兼容此問題 在代碼遷移的過程中&#xff0c;遇到了一個 PHP 版本兼容錯誤 A PHP Error was encounteredSeverity: NoticeMessage: Only variable references should be return…

自動駕駛汽車定位技術

一、高精度地圖 二、汽車定位技術 三、無線通信輔助汽車定位 四、視覺輔助汽車定位 五、自動駕駛高精度地圖與定位實踐

正整數分解為幾個連續自然數之和

題目&#xff1a;輸入一個正整數&#xff0c;若該數能用幾個連續正整數之和表示&#xff0c;則輸出所有可能的正整數序列。 一個正整數有可能可以被表示為n(n>2)個連續正整數之和&#xff0c;如&#xff1a; 1512345 15456 1578 有些數可以寫成連續N&#xff08;>1&#…

egret3D與2D混合開發,畫布尺寸不一致的問題

egret3d的GUI目前還沒有&#xff0c;在做3d游戲的時候沒有UI可用&#xff0c;只能使用egret2d的EUI組件庫&#xff0c;egret3d與egret2d混合開發&#xff0c;canvas3d的大小與位置與canvas2d并沒有重合&#xff0c;導致適配ui時總是錯位。在做手機屏幕適配的時候必須解決這種問…

最優化作業講解01:標準化線性規劃(LP)

1.1、錯誤點&#xff1a;求得了目標函數最優解&#xff0c;但是沒有將結果返回去最大值 2.4、錯誤點&#xff1a;x2變量的處理上&#xff0c;x2不是任意變量不可以按照任意變量來進行變換 x6 x2 5&#xff0c;且x6>0 2.9、 易錯點&#xff1a; 1&#xff09;基變量要滿足…