Java多線程基礎(一)

文章分兩份,第一份主要內容爲1-4點web

  • 1.多線程的概念
  • 2.Java程序運行原理
  • 3.實現多線程的2種方式
  • 4.2種方式的區別
  • 5.線程同步(同步鎖)
  • 6.同步線程之間的通信

1.多線程的概念
(1)併發和並行
並行:多個CPU實例或是多臺機器同時執行一段處理邏輯,是真正的同時
併發:經過CUP調度算法,讓用戶看上去同時去執行,實際上從CPU操做層面並非真正的同時。併發每每須要公共的資源,對公共資源的處理和線程之間的協調是併發的難點。
(2)什麼是進程
進程:一個應用程序就是一個進程。
多進程:在操做系統中,能同時運行多個任務程序(併發)。
(3)什麼是線程
線程:是操做系統可以進行運算調度的最小單位。
多線程:一個進程中能夠併發多個線程,每條線程並行且獨立執行不一樣的任務(提升程序的效率)。
多線程應用場景:服務器同時處理多個用戶端請求,教學電腦控屏軟件同時共享屏幕給多個電腦。面試

2.Java程序運行原理
Java命令會啓動Java虛擬機,啓動JVM,等於啓動了一個應用程序,也就是啓動了一個進程,該進程會自動啓動一個「主線程」,而後主線程去調用某個類的main方法。
面試題:JVM的啓動是多線程嗎
JVM啓動至少啓動了垃圾回收線程和主線程,因此是多線程的。算法

3.實現多線程的2種方式編程

  • (1).繼承Thread類
  • (2).實現Runnable接口

(1).繼承Thread類
1.定義類繼承Thread
2.重寫run方法
3.把新線程要作的事情寫在run方法裏
4.建立線程對象
5.開啓新線程
如下是四個Demo增強理解

Demo1在這裏插入圖片描述
Demo2
在這裏插入圖片描述
Demo3服務器

在這裏插入圖片描述
Demo4
在這裏插入圖片描述(2)實現Runnable接口
1.定義類實現Runnable接口
2.實現run方法
3.把新線程要作的事情寫在run方法裏
4.建立自定義的Runnable的子類對象
5.建立Thread對象,傳入Runnable
6.調用start()開啓新線程

如下是兩個Demo增強理解
Demo5在這裏插入圖片描述
Demo6
在這裏插入圖片描述
4.實現多線程的2種方式的區別
繼承Thread:
好處:能夠直接使用Thread類中的方法,代碼簡單。
弊端:若是已經有了父類,就不能使用這種方法。
多線程

實現Runnable接口
好處:即便本身定義的線程類已經有了父類也沒有關係,接口是能夠多實現的。
弊端:不能直接使用Thread中的方法,須要先獲取到線程對象後,才能獲得Thread的方法,代碼複雜
併發

5.6點見Java編程基礎(二)svg

本文同步分享在 博客「計蒙不吃魚」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。操作系統

相關文章
相關標籤/搜索