並行:同時做某些事,可以互不干擾的同一時刻做幾件事。
併發:也是同時做某些事,但是強調,同一時刻做了幾件事。
1)佇列、緩衝區:
排隊就是佇列,先進先出。排隊是一種解決併發的方法。
排成的佇列,其實就是乙個緩衝地帶,就是緩衝區。
2)優先佇列:
在到達佇列時優先處理,就是優先佇列。
3)爭搶:
資源被乙個執行緒佔據後,就會鎖定資源,其它執行緒就需要等該執行緒釋放資源再程序爭搶。這是一種鎖機制。
4)預處理:
提前載入執行緒需要的資料,快取場景常用。
5)垂直擴充套件:
比如一台伺服器無法快速處理高併發業務時,可以提公升該伺服器的記憶體、增加cpu效能和cpu數,這就是垂直擴充套件。
6)水平擴充套件:
也可以叫橫向擴充套件,當一台伺服器無法滿足業務時,就增加伺服器數量、頻寬,這就是水平擴充套件。
7)訊息中介軟體:
使用訊息佇列,比如rabbitmq、activemq、rocketmq、kafka等。這會涉及到生產者與消費者模型,後一篇文章會詳細介紹。
執行緒,是作業系統能夠進行排程的最小單位,每個程序至少有乙個執行緒,同乙個程序內的執行緒可以共享程序的資源,每乙個執行緒擁有自己獨立的堆疊。
程序,是系統進行資源分配和排程的基本單位,是乙個或多個執行緒的集合,在作業系統中,每個程序在記憶體中相對獨立的,程序間不可以隨便的共享資料。
就緒ready:
執行緒能夠執行,但在等待被排程。可能執行緒剛剛建立啟動,或剛剛從阻塞中恢復,或者被其它執行緒搶占.
執行running:
執行緒正在執行
阻塞blocked:
執行緒等待外部事件發生而無法執行,如i/o操作.
終止terminated
執行緒完成,或退出,或被取消.
python多執行緒 8 多執行緒與多程序對比
多程序程式設計 耗cpu的操作,用多程序程式設計,對於io操作來說,使用多執行緒程式設計,程序切換代價要高於執行緒 import time from concurrent.futures import threadpoolexecutor,processpoolexecutor,as complet...
Python多執行緒 程序
一 執行緒 程序 對於作業系統來說,乙個任務就是乙個程序 process 比如開啟乙個瀏覽器就是啟動乙個瀏覽器程序,開啟乙個記事本就啟動了乙個記事本程序,開啟兩個記事本就啟動了兩個記事本程序,開啟乙個word就啟動了乙個word程序。程序是很多資源的集合。有些程序還不止同時幹一件事,比如word,它...
Python 多執行緒與多程序
前言 以前玩單機或者玩小資料集,都基本不用多執行緒或多程序都能基本滿足需求了 所以沒怎麼了解這方面的東西。但現在玩幾百萬甚至上千萬的資料,甚至集群等東西之後,就有必要學習多執行緒或多程序了。在python中首先要匯入相關的模組 import threading as td import multip...