用Java的Thread、Runnable、Timer三種方法實現每隔一毫秒列印Hello,同時計算從1加到10000,算完後輸出結果並停止列印Hello。
用Java的Thread、Runnable、Timer三種方法實現每隔一毫秒列印Hello,同時計算從1加到10000,算完後輸出結果並停止列印Hello。
一、Thread實現
//列印Hello
package thread;
public class PrintHello extends Thread {
public static boolean flag=true;//標誌位:根據標誌位判斷是否要執行列印
private String str;
public PrintHello() {}
public PrintHello(String str) {
this.str=str;
}
@Override
public void run() {
while(flag){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str);
}
}
//關閉執行緒
public void shutdown(){
flag=false;
}
}
//計算從1加到100000。計算完成後輸出結果,並關閉PrintHello執行緒。
package thread;
public class Calculation extends Thread {
int sum=0;
@Override
public void run() {
for(int i=1;i<=10000;i++){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
sum+=i;
System.out.println(sum);
}
//關閉PrintHello執行緒
new PrintHello().shutdown();
}
}
//主程式
package thread;
public class TestThread {
public static void main(String[] args) {
PrintHello thPrint = new PrintHello("Hello");
Calculation thCalc = new Calculation();
thPrint.start();
thCalc.start();
}
}
二、Runnable實現
//列印Hello
package runnable;
public class PrintHello implements Runnable {
private static boolean flag=true;
private String str;
public PrintHello() {
}
public PrintHello(String str) {
this.str=str;
}
@Override
public void run() {
while(flag){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(str);
}
}
//關閉執行緒
public void shutdown(){
flag=false;
}
}
//計算從1加到100000。計算完成後輸出結果,並關閉PrintHello執行緒。
package runnable;
public class Calculation implements Runnable {
int sum=0;
@Override
public void run() {
for(int i=1;i<=10000;i++){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sum+=i;
System.out.println(sum);
}
//關閉PrintHello執行緒
new PrintHello().shutdown();
}
}
//主程式
package runnable;
public class TestRunnable {
public static void main(String[] args) {
Thread thPrint=new Thread(new PrintHello(“Hello”));
Thread thCalculation=new Thread(new Calculation());
thPrint.start();
thCalculation.start();
}
}
三、Timer實現
package timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
class PrintAndCalculation extends TimerTask{
int i=1;
int sum=0;
@Override
public void run() {
Timer timer=new Timer();
if(i>10000){
timer.cancel();
}else{
System.out.println("Hello");
sum+=i;
i++;
System.out.println(sum);
timer.cancel();
}
}
}
public class TimerPrintCalculation {
public static void main(String[] args) {
Timer timer=new Timer();
timer.schedule(new PrintAndCalculation(), new Date(), 1);
}
}
相關文章
- Java實現第一個程式碼,輸出 hello worldJava
- C語言列印“Hello World“C語言
- 核心必須懂(一):用系統呼叫列印Hello,world!
- python 實現計算器功能 輸入字串,輸出相應結果Python字串
- Hello,Threadthread
- 【c語言】期望輸出str = hello world 的兩種方法C語言
- java 既然出現double型別×2的n次方的時候計算結果出現偏差Java型別
- 另一種列印輸出日誌資訊的方式
- 實現三條執行緒,分別列印A,B,C,但是看到輸出來的結果是ABCABC……執行緒
- 第一個shell程式設計,輸出hello world!程式設計
- docker學習1|使用docker輸出hello worldDocker
- 一個頁面內放入文字框和按鈕,實現文字框和按鈕輸繫結,輸入圓半徑,計算圓面積並彈窗計算結果顯示出來。(js)JS
- 體驗 Java 9(1):從 Hello World 到 LombokJavaLombok
- Java日期時間API系列38-----一種高效的工作日計算計算方法JavaAPI
- Java如何建立臨時檔案並列印File各種屬性Java
- java實現一個月的日曆列印Java
- 計算機系統->Hello World的一生 | 程式如何執行計算機
- 奇怪的Js時間計算方法,跨多個月後出現1天的誤差JS
- 讓你的Laravel在 15 毫秒內返回一個"hello world!"Laravel
- C語言從1列印到100再列印到1該如何編寫?我只服最後一種寫法!C語言
- 實時計算Flink>獨享模式>Batch(試用)>建立結果表——建立CSV結果表模式BAT
- 用java實現一個簡單的計算器Java
- python 使用 loguru 輸出異常日誌同時列印變數值Python變數
- 劍指Offer-17-列印從1到最大的n位數-Java程式碼實現(兩種思路)Java
- java 專案中整合 echarts 統計圖,有什麼方法實現列印匯出?JavaEcharts
- Java™ 教程(格式化數字列印輸出)Java
- Java之異常資訊的三種列印方式Java
- Flink實時計算pv、uv的幾種方法
- 從0到1實現一個簡單計算器
- Java實現定時任務的三種方法Java
- 實驗三:分別用for、while和do-while迴圈語句以及遞迴方法計算n!,並輸出算式While遞迴
- 入門輸出Hello World!——C語言C語言
- 【Java】Hello worldJava
- matlab中三種計算程式執行時間方法Matlab
- Linux shell之列印輸出Linux
- 一種支援多種並行環境的柵格地理計算並行運算元並行
- Python中4種方法實現列印整個Pandas DataFramePython
- c語言單連結串列的實現,包括連結串列的建立、插入、查詢、刪除、列印、長度計算C語言