只有一種實現多執行緒的方式 ?

2021-10-04 05:56:19 字數 774 閱讀 9819

執行緒是實現多執行緒的基礎,本篇主要講解關於執行緒的兩個問題。

1 為什麼說本質上只有一種實現多執行緒的方式?

2 實現runnable的方式和繼承thread的方式哪種好?好在**?

為什麼說本質上只有一種實現多執行緒的方式?

1 實現runnable介面的方式

class runnableimpl : runnable 

}fun main()

2 繼承thread類的方式
class threadextend : thread() 

}fun main()

3 通過executors執行緒池模型實現多執行緒
fun main() 

}

public inte***ce threadfactory 

private static class defaultthreadfactory implements threadfactory

public thread newthread(runnable r)

}

4 通過callable實現多執行緒
class callableimpl : callable

}fun main()

println("after future get")

}

下面我們對這兩種方式做一下對比,就知道runnable方式為什麼比thread方式好。

實現多執行緒的另一種方式 Callable

package com.mldn.thread import j a.util.concurrent.executionexception import j a.util.concurrent.futuretask public class testmycallable 自定義類mycallable...

多執行緒環境下單例模式的一種實現方式

最近在看dubbo的源 發現dubbo類extensionloader中有一段 private static final concurrentmap,extensionloader extension loaders new concurrenthashmap,extensionloader pub...

多執行緒的一種場景

void say hello void args 執行緒的執行函式,函式返回的是函式指標,便於後面作為引數 定義執行緒的 id 變數,多個變數使用陣列 pthread t tids num threads int indexes num threads 用陣列來儲存i的值 for int i 0 i...