马士兵python_马士兵python大数据全栈工程师
3. 進程與線程的關系
一個程序就是一個進程,而一個程序中的多個任務則被稱為線程。進程是表示資源分配的基本單位,又是調度運行的基本單位。,亦即執行處理機調度的基本單位。 進程和線程的關系:一個線程只能屬于一個進程,而一個進程可以有多個線程,但至少有一個線程。線程是操作系統可識別的最小執行和調度單位。
資源分配給進程,同一進程的所有線程共享該進程的所有資源。同一進程中的多個線程共享代碼段(代碼和常量),數據段(全局變量和靜態變量),擴展段(堆存儲)。但是每個線程擁有自己的棧段,棧段又叫運行時段,用來存放所有局部變量和臨時變量,即每個線程都有自己的堆棧和局部變量。
處理機分給線程,即真正在處理機上運行的是線程。
線程在執行過程中,需要協作同步。不同進程的線程間要利用消息通信的辦法實現同步。
如果把上課的過程比作進程,把老師比作CPU,那么可以把每個學生比作每個線程,所有學生共享這個教室(也就是所有線程共享進程的資源),上課時學生A向老師提出問題,老師對A進行解答,此時可能會有學生B對老師的解答不懂會提出B的疑問(注意:此時可能老師還沒有對A同學的問題解答完畢),此時老師又向學生B解惑,解釋完之后又繼續回答學生A的問題,同一時刻老師只能向一個學生回答問題(即:當多個線程在運行時,同一個CPU在某一個時刻只能服務于一個線程,可能一個線程分配一點時間,時間到了就輪到其它線程執行了,這樣多個線程在來回的切換)
4. 為什么要使用多線程
多線程可以提高程序的效率。
實際生活案例:村長要求喜洋洋在一個小時內打100桶水,可以喜洋洋一個小時只能打25桶水,如果這樣就需要4個小時才能完成任務,為了在一個小時能夠完成,喜洋洋就請美洋洋、懶洋洋、沸洋洋,來幫忙,這樣4只羊同時干活,在一小時內完成了任務。原本用4個小時完成的任務現在只需要1個小時就完成了,如果把每只羊看做一個線程,多只羊即多線程可以提高程序的效率。
總結
以上是生活随笔為你收集整理的马士兵python_马士兵python大数据全栈工程师的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录FPGA面试的准备
- 下一篇: 牛客面试系列之Redis