日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多线程的基础知识

發布時間:2023/11/29 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程的基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、程序、進程、線程的基本概念

程序:為了完成某種任務用某一種語言編寫的一組指令的集合就叫程序。程序就是一段靜態的代碼。

進程:進程是程序的依次執行過程,或者說是正在運行的一個程序。這是一個動態的過程,有它自身的產生運行和消亡的過程--生命周期。進程是資源分配的基本單位。

線程:進程可進一步的劃分為線程,線程是一個程序內部的一條執行路徑。線程是調度和執行的基本單位,每一個線程擁有獨立的程序計數器和運行棧,線程之間切換的開銷相對來說比較小。

備注:一個Java程序至少有三個線程:main()線程、垃圾收集線程、異常處理線程。

2、并發和并行的基本概念

并行:多個CPU同時執行多個任務。

并發:一個CPU同時執行多個任務。

3、多線程程序的優點

  • 提高應用程序的響應時間
  • 提高計算機系統CPU的利用效率
  • 改善程序結構。

4、線程的分類

Java中的線程分為用戶線程和守護線程。

  • 他們兩者在幾乎每個方面都是相同的,唯一的區別就是判斷JVM何時離開
  • 守護線程是用來服務用戶線程的,但是也可以把一個用戶線程更改為守護線程
  • Java垃圾回收線程就是一個典型的守護線程
  • 如果JVM中的線程全部是守護線程的時候,JVM將會退出

5、線程創建的四種方式

  • 使用繼承Thread類的方式創建多線程
  • 使用實現Runnable接口的方式創建多線程
  • 使用實現Callable接口的方式創建多線程
  • 使用線程池的方式創建多線程

6、線程的生命周期

一個線程完整的生命周期通常包含五個部分:

  • 新建狀態:當一個Thread類及其子類的對象被聲明并創建時,新生的線程就處于新建狀態
  • 就緒狀態:新建的線程執行start()方法之后,將會進入線程隊列等待CPU時間片,此時的線程已經具備了執行的條件,只是沒有分配到CPU
  • 運行狀態:處于就緒狀態的線程被調度并且獲得了CPU時間片之后,就能執行狀態
  • 阻塞狀態:在某種情況下,當前的線程讓出CPU并臨時中斷自己的執行,此時的線程就進入了阻塞狀態
  • 死亡狀態:線程完成了全部的工作或者被強制提前結束或者線程出現異常導致線程結束

7、什么是線程的安全問題

  多線程安全問題,是由于多個線程在訪問共享的數據(共享的資源),并且操作共享數據的語句不止一條。那么這樣在操作多條共享數據的線程之間就可能發生線程切換。只要切換就可能有安全問題。

  當多個線程執行解決某個方法時,不管這些線程如何交替的執行,我們在主程序中不需要去做任何的同步,這個類的結果行為都是我們設想的正確行為,那么我們就可以說這個類時線程安全的。

轉載于:https://www.cnblogs.com/BaoZiY/p/10726400.html

總結

以上是生活随笔為你收集整理的多线程的基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。