線程基礎的一些理解(一)(java),線程基礎理解java

來源:互聯網
上載者:User

線程基礎的一些理解(一)(java),線程基礎理解java

 一、多線程的基本概念

  線程是指進程中的一個執行情境,也就是執行流程,所以我們首先要聊一聊進程,以及進程和線程的關係

1、什麼是進程?

  一個進程對應一個應用程式,就像我們在windows系統中啟動Word就表示啟動了一個進程,在java的開發環境下啟動JVM,就表示啟動了一個進程。現代的電腦都是支援多進程的,在同一個作業系統中可以同時啟動多個進程。那什麼又是多進程呢?

2、什麼是多進程,多進程有什麼作用?

  單進程電腦只能做一件事情,就像很久以前的電腦,只能開啟一個Dos視窗,這就是單進程的。

  而你平時一邊打著lol(lol進程),一邊聽著音樂(音樂進程),這就是多進程的。那麼問題來了,對於單核電腦來講,在同一個時間點上,遊戲進程和音樂進程是同時在運行嗎?

  不是。(多核的電腦可以同時運行,所以處理速度高),因為電腦的CPU只能在某個時間點上做一件事,由於電腦可以在“遊戲進程”和“音樂進程”之間頻繁的切換執行,切換速度極高,人類感覺遊戲和音樂在同時進行。生活中有很多這樣的例子,以前的小人書,通過快速的翻頁,人就動了起來,電影一幀一幀播放,畫面就動了,人類感覺是同時進行,其實是通過CPU快速的切換,是人感覺是這樣的。所以多進程的作用不是提高執行速度,而是提高CPU的使用率,以前一個CPU只能做一件事,現在通過不同進程之間的切換就可以實現幹多個事情。

3、什麼是線程,與進程的聯絡?

    線程是一個進程中的執行情境。一個進程可以啟動多個線程。可以理解為一個進程可以包含多個線程。

4、多線程有什麼作用?

    同樣,多線程與多進程的作用是一樣的,並不是為了提高執行速度,而是提高應用程式的使用率,就像有三個人同時訪問百度伺服器(輸入百度網址),伺服器端的程式就是一個

進程,如果他是單線程的那我訪問的時候,你就不能訪問百度伺服器,如果我們每個人都佔用一個線程,伺服器在我們之間頻繁的切換,給我們一種錯覺感覺多個線程在同時並發執行,就

可以實現很多人同時訪問百度網站。線程和線程共用“堆記憶體和方法區記憶體”,棧記憶體是獨立的,一個線程一個棧。

5.java程式的運行原理?

  java命令會啟動java虛擬機器,啟動JVM,等於啟動了一個應用程式,表示啟動了一個進程。該進程會自動啟動一個“主線程”,然後主線程去調用某個類的main方法,所以

main方法運行在主線程中。

 二、java中是如何?多線程的

1、在java語言中實現多線程的第一種方式:

  (1)繼承java.lang.Thread

  (2) 重寫run方法。

三個知識點:

  如何定義線程? 繼承Thread類

  如何建立線程? new 子類調用

  如何啟動線程? .start()方法

                                    

 2、在java語言中實現多線程的第二種方式:

(1)寫一個類實現java.lang.Runnable介面

  (2)   實現run方法

 三、線程的生命週期

 

 

 

   

 

 

 

   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.