java多執行緒使用

2021-09-02 23:26:39 字數 1053 閱讀 5683

首先說一下多執行緒的應用場景吧:

eg:1+2+3+..+1億;(最開始測試用的是1兆,但是超過了double的範圍,計算的資料不準確,用bigdecimal太麻煩了)

如何快速運算出資料結果 ?

常規演算法:

public static void main(string args)

system.out.println("1到1億累加的和為:" + sum);

}上面這一段**確實可以計算出資料最後的和: 5000000050000000。

但是呢 ? 速度太慢了。

這時候就可以用多執行緒。

上面的**用的是1個執行緒執行,需要時間大約30毫秒。

如果同時開10個執行緒,時間就會大大縮短近6倍。

先不用執行緒池吧,建立執行緒有3種方式,測試這個必須用第3種方式,因為多執行緒只有callable有返回值:

多執行緒演算法:

1. 先建立乙個多執行緒執行的類

public class sum implements callable

@override

public list call() throws exception

long e = system.currenttimemillis();

long time = e - l;

// 將求和資料 與 求和時間 封裝到list集合。

arraylist arraylist = new arraylist();

arraylist.add(sum);

arraylist.add(time);

system.out.println("sum = " + sum);

return arraylist;

}}2. 建立10個多執行緒

public class testone else

}long s = 0, t = 0;

for (futuref : fs)

pool.shutdown();

// 這個時間不是很準確,但是計算時間,確實比單執行緒更快

}}

Java 多執行緒的使用

簡而言之 乙個程式是由程序組成,乙個程序是由執行緒組成的。乙個程式中可以存在多個程序,乙個程序中可以存在多個執行緒。單執行緒 一條主線執行下去,沒有分支。public class testmain public static void method1 string str public static...

java多執行緒

在網上看到很有意思的問題,摘下來好好看下 在面試的時候被問了乙個多執行緒的問題 回來仔細思考了一下,多執行緒是否真的能提高了效率?我對多執行緒的理解就是 比如挖乙個隧道,有2種開工方法 1 只在山的一頭挖,直至挖到山的另一頭,從而打通隧道,這可以看成是單執行緒 2 在山的兩頭挖,同時開工,最後在山的...

Java 多執行緒

1。thread類和runnable介面 2。主線程 用thread的static thread currentthread 方法獲得 3。通過實現runnable介面建立執行緒 實現runnable介面的run方法。新執行緒在run 方法返回時結束。注意用這種方法建立程序時,在實現runnable...