建立執行緒的兩種方式以及區別
1.繼承Thread類
2.實現Runnable介面
區別:
採用繼承Thread類:
(1)程式碼簡單,直接通過Thread的構造方法建立執行緒,且訪問當前執行緒時,直接呼叫this.即可獲得當前執行緒。
(2)因為已經繼承Thread類,所以不能繼承其他父類。
(3)若要兩個執行緒之間共享變數時,需要在宣告為static變數。
採用實現Runnable介面:
(1)執行緒只是實現了Runnable介面,還可以繼承其他類和實現其他介面;
(2)可以多個執行緒之間共享同一個目標物件,非常適合多個執行緒處理同一份資源的情況;
(3)程式碼稍微複雜一些,若要訪問當前執行緒,必須使用Thread.currentThread()方法。
當沒有宣告static變數時:
Runnable可以實現資源共享但是Thread不能,原因:
1.因為一個執行緒只能啟動一次,通過Thread實現執行緒時,執行緒和執行緒所要執行的任務是捆綁在一起的。也就使得一個任務只能 啟動一個執行緒,不同的執行緒執行的任務是不相同的,所以沒有必要,也不能讓兩個執行緒共享彼此任務中的資源。
2.一個任務可以啟動多個執行緒,通過Runnable方式實現的執行緒,實際是開闢一個執行緒,將任務傳遞進去,由此執行緒執行。可以 例項化多個 Thread物件,將同一任務傳遞進去,也就是一個任務可以啟動多個執行緒來執行它。這些執行緒執行的是同一個任 務,所以他們的資源是共享。
相關推薦
spring4+ThreadPoolTaskExecutor建立執行緒 兩種方式傳送郵件
百度雲程式碼下載地址包含測試用例 :點選後跳轉 ThreadService package com.konglingfu.service; public interface ThreadService extends Runnable{ public void se
建立執行緒兩種方式的比較
通過鐵路售票程式來理解實現多執行緒的兩種方法:通過java.lang.Thread類和通過Runnable介面 java中有兩種實現多執行緒的方式。一是直接繼承Thread類,二是實現Runnable介面。那麼這兩種實現多執行緒的方式在應用上有什麼區別呢? 為了回答這個問
開始一個執行緒兩種方式的區別
java 開始一個現成有兩中方法 :一是直接呼叫Thread例項的start()方法,二是將Runable例項傳給一個Thread例項然後呼叫它的start()方法。 首先讓我們看看Thread類的start() 方法: public synchronized void st
建立執行緒的兩種方式以及區別
1.繼承Thread類 2.實現Runnable介面 區別: 採用繼承Thread類: (1)程式碼簡單,直接通過Thread的構造方法建立執行緒,且訪問當前執行緒時,直接呼叫this.即可獲得當前執行緒。 (2)因為已經繼承Thread類,所以不能繼承其他父類。
動態代理的兩種方式以及區別
動態代理的兩種方式,以及區別。 JDK動態代理:利用反射機制生成一個實現代理介面的匿名類,在呼叫具體方法前呼叫InvokeHandler來處理。 CGlib動態代理:利用ASM(開源的Java位元組碼編
建立String的兩種方式的區別
在建立String物件時,通常來講,有兩種方式,一是new型:String s = new String("abc");另一種是雙引號型:String s = "abc";那麼這兩種方式有什麼區別呢? 答:這兩種方法生成的字串物件,在記憶體中的存取機制不同。 Java為St
C# 修改儲存 配置檔案的兩種方式以及區別
第一種為 Properties.Settings.Default.引數名= 引數值; Properties.Settings.Default.Save(); 在第一次執行時會讀取App.config裡的初始值 但是一旦呼叫Save方法後,Settings裡“使用者”
Java啟動執行緒兩種方式總結
先檢視jdk幫助文件,這麼進行描述執行緒:執行緒是程式中的執行執行緒,可以由jvm來執行一個或者多個執行緒。方法1:繼承Thread 類 重寫run方法即可如下程式碼:public class Treadtest {//主方法public static void main(S
多執行緒實現的兩種方式及其區別
繼承Thread public class Demo2_Thread { public static void main(String[] args) { MyThrea
實現多執行緒的兩種方式,區別和好處有哪些
一種是擴充套件java.lang.Thread類 另一種是實現java.lang.Runnable介面 區別就是:第一種是擴充套件,第二種是實現 好處就是: 在實際開發中通常以實現Runnable介面為主,因為實現Runnable介面相比繼承Thread類可以避免繼承的侷
多執行緒兩種實現方式的區別Thread Runnable
多執行緒兩種實現方式的區別多執行緒的兩種實現方式 Thread Runnable 兩者的區別首先:使用Runnable介面與Thread類相比較,解決了單根繼承的定義侷限性,所以不管後面的區別和聯絡是什麼,至少這一點上就已經下了死定義– 如果要使用一定是用Runnable介面
day 33 什麼是執行緒? 兩種建立方式. 守護執行緒. 鎖. 死鎖現象. 遞迴鎖. GIL鎖
一.執行緒 1.程序:資源的分配單位 執行緒:cpu執行單位(實體) 2.執行緒的建立和銷燬開銷特別小 3.執行緒之間資源共享,共享的是同一個程序中的資源 4.執行緒之間不是隔離的 5.執行緒可不需要 
實現多執行緒有兩種方式及其區別
實現多執行緒有兩種方式:(自JDK1.5之後有三種,最後一種並不常用) 1.繼承Thread類 2.實現Runnable介面(Callable介面) 一個類如果實現了Runnable介面或者繼承了Thread類,那麼它就是一個多執行緒類,如果是要實現多執行緒,還需要重寫run()方法,所以ru
java執行緒兩種實現方式的區別,你所不知道的小細節
/* * 建立執行緒時要繼承Runnable介面 * 不要把寶貴的單繼承機會佔有掉 * 兩種方式有點不用,實現Runnable * 介面時多個執行緒中執行一個 * Runnable介面實現類時,run方法資源共享 * 而繼承Thread時,run方
多執行緒兩種實現區別-繼承Thread和實現Runable
一 前面一種比較簡潔。後面一種更靈活,因為java可以實現多個介面,但是隻能繼承一個類 二 適合於資源的共享 如果不涉及 多執行緒直接資源共享用Thread 比較好,否則實現Runable較好 Thread其實也是實現了Runnable介面 Thread中的start(
操作系統,編程語言分類,執行python兩種方式,變量,內存管理,定義變量的三個特征
什麽 height 取代 沒有 一個 Coding 開發 軟件 簡單 操作系統 1、什麽是操作系統 操作系統位於計算機硬件與應用軟件之間 是一個協調、管理、控制計算機硬件資源與軟件資源的控制程序2、為何要有操作系統? 1、控制硬件 2、把對硬件的復雜
vue 路由傳參 params 與 query兩種方式的區別
fine 分享 文件 路由 註意 undefine 方法 router 由於 初學vue的時候,不知道如何在方法中跳轉界面並傳參,百度過後,了解到兩種方式,params 與 query。然後,錯誤就這麽來了: router文件下index.js裏面,是這麽定義路由
css實現透明的兩種方式及其區別
白色 class 子節點 new 透明度 區別 方式 ron pre 一、opacity:0~1 值越高,透明度越低,下面為示例 選擇器{ opacity:0.5 } 選擇器匹配到的節點們,包括節點們的孩子節點,都會實現%50透明,另 0.5 可直
建立資源的兩種方式
命令 vs 配置檔案 Kubernetes 支援兩種方式建立資源: 1. 用 kubectl 命令直接建立 kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2 在命令列中通過引數指定資源的屬性。 2.
windows系統中建立執行緒常用的函式及其區別
在windows系統中建立執行緒的函式有以下幾個方法: CreadThread,AfxBeginThread,_beginthread,_beginthreadex。 一、CreateThread HANDLE WINAPI CreateThread( __in