日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python面试题(第二篇)

發布時間:2023/12/20 python 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python面试题(第二篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第二部分 網絡編程和并發(34題)

    • 1、簡述 OSI 七層協議。
    • 2、什么是C/S和B/S架構?
    • 3、簡述 三次握手、四次揮手的流程。
    • 4、什么是arp協議?
    • 5、TCP和UDP的區別?
    • 6、什么是局域網和廣域網?
    • 7、為何基于tcp協議的通信比基于udp協議的通信更可靠?
    • 8、什么是socket?簡述基于tcp協議的套接字通信流程。
    • 9、什么是粘包?socket 中造成粘包的原因是什么?哪些情況會發生粘包現象?
    • 10、IO多路復用的作用?
    • 11、什么是防火墻以及作用?
    • 12、select、poll、epoll 模型的區別?
    • 13、簡述 進程、線程、協程的區別 以及應用場景?
    • 14、GIL鎖是什么鬼?
    • 15、Python中如何使用線程池和進程池?
    • 16、threading.local的作用?
    • 17、進程之間如何進行通信?
    • 18、什么是并發和并行?
    • 19、進程鎖和線程鎖的作用?
    • 20、解釋什么是異步非阻塞?
    • 21、路由器和交換機的區別?
    • 22、什么是域名解析?
    • 23、如何修改本地hosts文件?
    • 24、生產者消費者模型應用場景及優勢?
    • 25、什么是CDN?有什么用?
    • 26、LVS是什么及作用?
    • 27、Nginx是什么及作用?
    • 28、keepalived是什么及作用?
    • 29、haproxy是什么以及作用?
    • 30、什么是負載均衡?
    • 31、什么是rpc及應用場景?
    • 32、簡述 asynio模塊的作用和應用場景。
    • 33、簡述 gevent模塊的作用和應用場景。
    • 34、twisted框架的使用和應用?

1、簡述 OSI 七層協議。

  • 概念
    s
    Open System Interconnection : 開放互聯系統

  • 圖示

    注:圖片來源:https://www.cnblogs.com/maybe2030/p/4781555.html#_label1,作者:Poll的筆記

  • 3.粗淺理解

    物理層:主要設備,中繼器、集線器,傳輸單位是比特(比特流),保證比特數據遠距離傳輸不會衰減,都能對數據進行再生和重定時。

    數據鏈路層:主要設備,網卡,網橋,交換機,傳輸單位是幀,以太網協議為基礎進行傳輸。幀就是對字節的封裝,字節(byte)是由位(bit)組成的。

    網絡層:主要設備,路由器,傳輸單位是報文(包),以IP協議為基礎進行傳輸,提供邏輯地址IP,選路,數據從源端到目的端的傳輸。

    傳輸層:主要設備,網管,傳輸單位是數據段(段),以TCP/UDP協議為主,實現網絡不同主機上用戶進程之間的數據通信,可靠與不可靠的傳輸,傳輸層的錯誤檢驗,流量控制等。

    會話層:傳輸單位是:數據,會話層管理主機之間的會話進程,即負責建立、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。如服務器驗證用戶登錄便是會話層完成額。

    表示層:傳輸單位是:數據,表示層對上層數據或信息進行變換以保證一個主機應用層信息可以被另一個主機的應用程序理解。表示層的數據轉換包括數據的加密、壓縮、格式轉換等。

    應用層:傳輸單位是:數據,為操作系統或網絡應用程序提供訪問網絡服務的接口。確定進程之間的性質以滿足用戶需求以及提供網絡與用戶的應用。

    2、什么是C/S和B/S架構?

    一、什么是C/S架構
    C/S架構是第一種比較早的軟件架構,主要用于局域網內。也叫 客戶機/服務器模式。

    它可以分為客戶機和服務器兩層:

    第一層: 在客戶機系統上結合了界面顯示與業務邏輯;

    第二層: 通過網絡結合了數據庫服務器。

    簡單的說就是第一層是用戶表示層,第二層是數據庫層。

    這里需要補充的是,客戶端不僅僅是一些簡單的操作,它也是會處理一些運算,業務邏輯的處理等。也就是說,客戶端也做著一些本該由服務器來做的一些事情,如圖所示:


    C/S架構軟件有一個特點,就是如果用戶要使用的話,需要下載一個客戶端,安裝后就可以使用。比如QQ,OFFICE軟件等。

    1、C/S架構的優點:

    1 C/S架構的界面和操作可以很豐富。(客戶端操作界面可以隨意排列,滿足客戶的需要)

    2 安全性能可以很容易保證。(因為只有兩層的傳輸,而不是中間有很多層。

    3 由于只有一層交互,因此響應速度較快。(直接相連,中間沒有什么阻隔或岔路,比如QQ,每天那么多人在線,也不覺得慢)

    2、C/S架構的缺點:

    可以將QQ作為類比:

    1 適用面窄,通常用于局域網中。

    2 用戶群固定。由于程序需要安裝才可使用,因此不適合面向一些不可知的用戶。

    3 維護成本高,發生一次升級,則所有客戶端的程序都需要改變。

    二、什么是B/S架構
    B/S架構的全稱為Browser/Server,即瀏覽器/服務器結構。

    Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在服務器端實現。

    B/S架構的系統無須特別安裝,只有Web瀏覽器即可。

    其實就是我們前端現在做的一些事情,大部分的邏輯交給后臺來實現,我們前端大部分是做一些數據渲染,請求等比較少的邏輯。

    B/S架構的分層:

    與C/S架構只有兩層不同的是,B/S架構有三層,分別為:

    第一層表現層:主要完成用戶和后臺的交互及最終查詢結果的輸出功能。

    第二層邏輯層:主要是利用服務器完成客戶端的應用邏輯功能。

    第三層數據層:主要是接受客戶端請求后獨立進行各種運算。

    如圖所示:

    B/S架構的優點:

    1、客戶端無需安裝,有Web瀏覽器即可。
    2、BS架構可以直接放在廣域網上,通過一定的權限控制實現多客戶訪問的目的,交互性較強。
    3、BS架構無需升級多個客戶端,升級服務器即可。可以隨時更新版本,而無需用戶重新下載啊什么的。

    B/S架構的缺點:

    1、在跨瀏覽器上,BS架構不盡如人意。
    2、表現要達到CS程序的程度需要花費不少精力。
    3、在速度和安全性上需要花費巨大的設計成本,這是BS架構的最大問題。
    4、客戶端服務器端的交互是請求-響應模式,通常需要刷新頁面,這并不是客戶樂意看到的。(在Ajax風行后此問題得到了一定程度的緩解)

    三、B/S架構的幾種形式
    第一種:客戶端-服務器-數據庫

    這個應該是我們平時比較常用的一種模式:

    1、客戶端向服務器發起Http請求

    2、服務器中的web服務層能夠處理Http請求

    3、服務器中的應用層部分調用業務邏輯,調用業務邏輯上的方法

    4、如果有必要,服務器會和數據庫進行數據交換. 然后將模版+數據渲染成最終的Html, 返送給客戶端

    第二種:客戶端-web服務器-應用服務器-數據庫

    類似于第一種方法,只是將web服務和應用服務解耦

    1 客戶端向web服務器發起Http請求

    2 web服務能夠處理Http請求,并且調用應用服務器暴露在外的RESTFUL接口

    3 應用服務器的RESTFUL接口被調用,會執行對應的暴露方法.如果有必要和數據庫進行數據交互,應用服務器會和數據庫進行交互后,將json數據返回給web服務器

    4 web服務器將模版+數據組合渲染成html返回給客戶端

    第三種方法:客戶端-負載均衡器(Nginx)-中間服務器(Node)-應用服務器-數據庫

    這種模式一般用在有大量的用戶,高并發的應用中。

    1、整正暴露在外的不是真正web服務器的地址,而是負載均衡器器的地址

    2、客戶向負載均衡器發起Http請求

    3、負載均衡器能夠將客戶端的Http請求均勻的轉發給Node服務器集群

    4、Node服務器接收到Http請求之后,能夠對其進行解析,并且能夠調用應用服務器暴露在外的RESTFUL接口

    5、應用服務器的RESTFUL接口被調用,會執行對應的暴露方法.如果有必要和數據庫進行數據交互,應用服務器會和數據庫進行交互后,將json數據返回給Node

    6、Node層將模版+數據組合渲染成html返回反向代理服務器

    7、反向代理服務器將對應html返回給客戶端

    Nginx的優點有:

    1、它能夠承受、高并發的大量的請求,然后將這些請求均勻的轉發給內部的服務器,分攤壓力.

    2、反向代理能夠解決跨域引起的問題,因為Nginx,Node,應用服務器,數據庫都處于內網段中。

    3、Nginx非常擅長處理靜態資源(img,css,js,video),所以也經常作為靜態資源服務器,也就是我們平時所說的CDN

    比如:前一個用戶訪問index.html, 經過Nginx-Node-應用服務器-數據庫鏈路之后,Nginx會把index.html返回給用戶,并且會把index.html緩存在Nginx上,

    下一個用戶再想請求index.html的時候,請求Nginx服務器,Nginx發現有index.html的緩存,于是就不用去請求Node層了,會直接將緩存的頁面(如果沒過期的話)返回給用戶。

    四、發展前景

    1、 C/S和B/S各有優勢,C/S在圖形的表現能力上以及運行的速度上肯定是強于B/S模式的,不過缺點就是他需要運行專門的客戶端,而且更重要的是它不能跨平臺,用c++在windows下寫的程序肯定是不能在linux下跑的。

    2、B/S模式就,它不需要專門的客戶端,只要瀏覽器,而瀏覽器是隨操作系統就有的,方便就是他的優勢了。
    而且,B/S是基于網頁語言的、與操作系統無關,所以跨平臺也是它的優勢,而且以后隨著網頁語言以及瀏覽器的進步,
    B/S在表現能力上的處理以及運行的速度上會越來越快,它的缺點將會越來越少。尤其是HTML5的普及,在圖形的渲染方面以及音頻、文件的處理上已經非常強大了。
    不過,C/S架構也有著不可替代的作用。
    ————————————————
    版權聲明:本文為CSDN博主「雪飛_海」的原創文章
    原文鏈接:https://blog.csdn.net/sea_snow/article/details/81187804

    3、簡述 三次握手、四次揮手的流程。

    TCP三次握手與四次揮手過程
    首先,客戶端與服務器均處于未連接狀態,并且是客戶端主動向服務器請求建立連接:

    客戶端將報文段中的SYN=1,并選擇一個seq=x,(即該請求報文的序號為x) 將這個報文發送到服務器。此時,客戶端進入同步已發送狀態(SYN-SEND).SYN報文段不能攜帶數據,但是要消耗掉一個序號。
    服務器收到請求報文后,若同意建立連接,則回復報文中,SYN=1,ACK=1,并選擇一個seq = y,且報文中確認號為x+1,序號為y .此時服務器進入同步已接收狀態(SYN-RCVD)

    客戶端收到服務器的同步確認后,對服務器發送確認的確認。將ACK=1,確認號為y+1,而報文首部的序號為x+1,將該報文發出后,客戶端進入已連接狀態(ESTABLISHED)。

    服務器收到客戶端的確認后,也進入已連接狀態。
    以上即三次握手

    為何使用三次握手機制:
    假設如下異常情況:

    客戶端向服務器發送了第一條請求報文,但是該報文并未在網絡中被丟棄,而是長時間阻滯在某處,而客戶端收不到服務器確認,以為該報文丟失,于是重新發送該報文,這次的報文成功到達服務器,如果不使用三次握手,則服務器只需對該報文發出確認,就建立了一個連接。而在這個連接建立,并釋放后,第一次發送的,阻滯在網絡中的報文到達了服務器,服務器以為是客戶端又重新發送了一個連接請求(實際上在客戶端那里,該連接早已失效),就又向客戶端發送一個確認,但客戶端認為他沒有發送該請求報文,因此不理睬服務器發送的確認,而服務器以為又建立了一個新的連接,于是一直等待A發來數據,造成了服務器資源的浪費,并且會產生安全隱患。因此,若使用三次握手機制,服務器發送了該確認后,收不到客戶端的確認,也就知道并沒有建立連接,因此不會將資源浪費在這種沒有意義的等待上。

    TCP連接的釋放(四次揮手)

    連接的釋放較連接的建立復雜。

    現假設客戶端與服務器均處于連接建立狀態,客戶端主動斷開連接:

    1.客戶端向服務器發送FIN報文:FIN=1,序號seq=上一個最后傳輸的字節序號+1=u,發送后,客戶端進入FIN-WAIT-1狀態。

    2.服務器接收到該報文后,發送一個確認報文:令ACK=1,確認序號ack = u+1,自己的報文序號seq=v,發送后,服務器進入CLOSE-WAIT狀態。

    3.此時TCP連接進入連接半關閉狀態,服務器可能還會向客戶端發送一些數據。

    4.客戶端收到來自服務器的確認之后,進入FIN-WAIT-2狀態。等待服務器發送連接釋放報文。

    5.如果服務器已經沒有要發送的數據,則釋放TCP連接,向客戶端發送報文:令FIN=1,ACK=1,確認號ack =u+1,自己的序號seq = w(w可能等于v也可能大于v),服務器進入LAST-ACK狀態。

    6.客戶端收到服務器的連接釋放報文后,對該報文發出確認,令ACK=1,確認號ack=w+1,自己的序號seq=u+1,發送此報文后,等待2個msl時間后,進入CLOSED狀態。

    7.服務器收到客戶端的確認后,也進入CLOSED狀態并撤銷傳輸控制塊。

    客戶端狀態變化:未連接----->SYN-SEND----->ESTABLISHED----->FIN-WAIT-1----->FIN-WAIT-2----->TIME-WAIT----->CLOSED

    服務器狀態變化:未連接----->SYN-RCVD----->ESTABLISHED----->CLOSE-WAIT----->LAST-ACK----->CLOSED

    通俗描述3次握手就是

    A對B說:我的序號是x,我要向你請求連接;(第一次握手,發送SYN包,然后進入SYN-SEND狀態)

    B聽到之后對A說:我的序號是y,期待你下一句序號是x+1的話(意思就是收到了序號為x的話,即ack=x+1),同意建立連接。(第二次握手,發送ACK-SYN包,然后進入SYN-RCVD狀態)

    A聽到B說同意建立連接之后,對A說:與確認你同意與我連接(ack=y+1,ACK=1,seq=x+1)。(第三次握手,A已進入ESTABLISHED狀態)

    B聽到A的確認之后,也進入ESTABLISHED狀態。

    描述四次揮手就是:

    1.A與B交談結束之后,A要結束此次會話,對B說:我要關閉連接了(seq=u,FIN=1)。(第一次揮手,A進入FIN-WAIT-1)

    2.B收到A的消息后說:確認,你要關閉連接了。(seq=v,ack=u+1,ACK=1)(第二次揮手,B進入CLOSE-WAIT)

    3.A收到B的確認后,等了一段時間,因為B可能還有話要對他說。(此時A進入FIN-WAIT-2)

    4.B說完了他要說的話(只是可能還有話說)之后,對A說,我要關閉連接了。(seq=w, ack=u+1,FIN=1,ACK=1)(第三次揮手)
    5.A收到B要結束連接的消息后說:已收到你要關閉連接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次揮手,然后A進入CLOSED)
    6.B收到A的確認后,也進入CLOSED。

    最簡單的理解
    一:建立TCP連接:三次握手協議

    客戶端:我要對你講話,你能聽到嗎;
    服務端:我能聽到;而且我也要對你講話,你能聽到嗎;
    客戶端:我也能聽到。
    …….
    互相開始通話
    ………

    二:關閉TCP連接:四次握手協議

    客戶端:我說完了,我要閉嘴了;
    服務端:我收到請求,我要閉耳朵了;
    (客戶端收到這個確認,于是安心地閉嘴了。)
    …….
    服務端還沒傾訴完自己的故事,于是繼續嘮嘮叨叨向客戶端說了半天,直到說完為止
    …….
    服務端:我說完了,我也要閉嘴了;
    客戶端:我收到請求,我要閉耳朵了;(事實上,客戶端為了保證這個確認包成功送達,等待了兩個最大報文生命周期后,才閉上耳朵。)
    (服務端收到這個確認,于是安心地閉嘴了。)
    ————————————————
    版權聲明:本文為CSDN博主「lizmit」的原創文章
    原文鏈接:https://blog.csdn.net/qq_35216516/article/details/80554575

    4、什么是arp協議?

    鏈接地址點擊進入

    5、TCP和UDP的區別?

    鏈接地址點擊進入

    6、什么是局域網和廣域網?

    正如題目所問,平時我們經常會聽到這些熟悉的名詞,但是當別人問我們他們之間到底有什么區別時,卻發現自己也解釋不清楚,不知道怎么去回答。下面本文將去探索他們是什么,相互之間有什么區別。

    局域網:(Local Area Network,LAN), 局域網是一個局部范圍的計算組,比如家庭網絡就是一個小型的局域網,里面包含電腦、手機和平板等,他們共同連接到你家的路由器上。又比如學校的機房就是一個局域網,里面有幾百幾千臺電腦,當機房無法上外網時,但是電腦之間仍可以通信,你們可以通過這個局域網來打CS 、玩紅警。理論上,局域網是封閉的,并不可以上外網,可以只有兩臺電腦,也可以有上萬臺。

    廣域網:(WAN,Wide Area Network),廣域網的范圍就比較大了,可以把你家和別人家、各個省、各個國家連接起來相互通信。廣域網和局域網都是從范圍的角度來劃分的,廣域網也可以看成是很多個局域網通過路由器等相互連接起來。

    以太網:(Ethernet),以太網可以看成是一種實現局域網通信的技術標準,是目前最廣泛的局域網技術。以太網的運行速率有10Mbps,100Mbps,1Gbps,10Gbps的,它的傳輸介質有的是雙絞線,有的是光纖。 簡單的說,以太網就是在局域網內,把附近的設備連接起來,可以進行通訊。

    互聯網:(Internet),互聯網可以看成是局域網、廣域網等組成的一個最大的網絡,它可以把世界上各個地方的網路都連接起來,個人、政府、學校、企業,只要你能想到的,都包含在內。互聯網是一種寬泛的概念,是一個極其龐大的網絡。
    ————————————————
    版權聲明:本文為CSDN博主「夜風~」的原創文章
    原文鏈接:https://blog.csdn.net/u014470361/article/details/79231787

    7、為何基于tcp協議的通信比基于udp協議的通信更可靠?

    tcp協議一定是先建好雙向鏈接,發一個數據包要得到確認才算發送完成,沒有收到就一直給你重發;udp協議沒有鏈接存在,udp直接丟數據,不管你有沒有收到。

    TCP的可靠保證,是它的三次握手雙向機制,這一機制保證校驗了數據,保證了他的可靠性。

    而UDP就沒有了,udp信息發出后,不驗證是否到達對方,所以不可靠。

    不過UDP的速度是TCP比不了的,而且UDP的反應速度更快,QQ就是用UDP協議傳輸的,HTTP是用TCP協議傳輸的,不用我說什么,自己體驗一下就能發現區別了。

    再有就是UDP和TCP的目的端口不一樣(這句話好象是多余的),而且兩個協議不在同一層,TCP在三層,UDP不是在四層就是七層。
    注:搬運與 https://www.cnblogs.com/Rivend/p/12038675.html

    8、什么是socket?簡述基于tcp協議的套接字通信流程。

    什么是 socket?簡述基于 tcp 協議的套接字通信流程?
    Socket的英文原義是"孔"或"插座"。通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄,

    可以用來實現不同虛擬機或不同計算機之間的通信。

    在Internet上的主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個Socket,并綁定到一個端口上,不同的端口對應于不同的服務。

    基于tcp 協議的套接字通信流程:

    1). 服務器先用 socket 函數來建立一個套接字,用這個套接字完成通信的監聽。
    2). 用 bind 函數來綁定一個端口號和 IP 地址。因為本地計算機可能有多個網址和 IP,每一個 IP 和端口有多個端口。需要指定一個 IP 和端口進行監聽。
    3). 服務器調用 listen 函數,使服務器的這個端口和 IP 處于監聽狀態,等待客戶機的連接。
    4). 客戶機用 socket 函數建立一個套接字,設定遠程 IP 和端口。
    5). 客戶機調用 connect 函數連接遠程計算機指定的端口。
    6). 服務器用 accept 函數來接受遠程計算機的連接,建立起與客戶機之間的通信。
    7). 建立連接以后,客戶機用 write 函數向 socket 中寫入數據。也可以用 read 函數讀取服務器發送來的數據。
    8). 服務器用 read 函數讀取客戶機發送來的數據,也可以用 write 函數來發送數據。
    9). 完成通信以后,用 close 函數關閉 socket 連接。

    注:搬運與 https://www.cnblogs.com/Rivend/p/12047299.html

    9、什么是粘包?socket 中造成粘包的原因是什么?哪些情況會發生粘包現象?

    只有TCP有粘包現象,UDP永遠不會粘包!

    粘包:在接收數據時,一次性多接收了其它請求發送來的數據(即多包接收)。如,對方第一次發送hello,第二次發送world,
       在接收時,應該收兩次,一次是hello,一次是world,但事實上是一次收到helloworld,一次收到空,這種現象叫粘包。

    原因
    粘包問題主要還是因為接收方不知道消息之間的界限,不知道一次性提取多少字節的數據所造成的。

    什么情況會發生:

    1、發送端需要等緩沖區滿才發送出去,造成粘包(發送數據時間間隔很短,數據很小,會合到一起,產生粘包)

    2、接收方不及時接收緩沖區的包,造成多個包接收(客戶端發送了一段數據,服務端只收了一小部分,服務端下次再收的時候還是從緩沖區拿上次遺留的數據,產生粘包)

    解決方案:

    一個思路是發送之前,先打個招呼,告訴對方自己要發送的字節長度,這樣對方可以根據長度判斷什么時候終止接受。
    注:搬運與 https://www.cnblogs.com/Rivend/p/12047330.html
    參考鏈接:點擊進入https://blog.csdn.net/Nice07/article/details/83515660

    10、IO多路復用的作用?

    參考鏈接:https://blog.csdn.net/SkydivingWang/article/details/74917897

    11、什么是防火墻以及作用?

    一、防火墻的基本概念

    古時候,人們常在寓所之間砌起一道磚墻,一旦火災發生,它能夠防止火勢蔓延到別的寓所。

    現在,如果一個網絡接到了Internet上面,它的用戶就可以訪問外部世界并與之通信。但同時,外部世界也同樣可以訪問該網絡并與之交互。

    為安全起見,可以在該網絡和Internet之間插入一個中介系統,豎起一道安全屏障。

    這道屏障的作用是阻斷來自外部通過網絡對本網絡的威脅和入侵,提供扼守本網絡的安全和審計的唯一關卡,它的作用與古時候的防火磚墻有類似之處,因此我們把這個屏障就叫做“防火墻”。

    在電腦中,防火墻是一種裝置,它是由軟件或硬件設備組合而成,通常處于企業的內部局域網與Internet之間,限制Internet用戶對內部網絡的訪問以及管理內部用戶訪問外界的權限。

    換言之,防火墻是一個位于被認為是安全和可信的內部網絡與一個被認為是不那么安全和可信的外部網絡(通常是Internet)之間的一個封鎖工具。

    防火墻是一種被動的技術,因為它假設了網絡邊界的存在,它對內部的非法訪問難以有效地控制。因此防火墻只適合于相對獨立的網絡,例如企業內部的局域網絡等。

    1.過濾不安全服務

    基于這個準則,防火墻應封鎖所有信息流,然后對希望提供的安全服務逐項開放,對不安全的服務或可能有安全隱患的服務一律扼殺在萌芽之中。

    這是一種非常有效實用的方法,可以造成一種十分安全的環境,因為只有經過仔細挑選的服務才能允許用戶使用。

    2.過濾非法用戶和訪問特殊站點

    基于這個準則,防火墻應先允許所有的用戶和站點對內部網絡的訪問,然后網絡管理員按照IP地址對未授權的用戶或不信任的站點進行逐項屏蔽。

    這種方法構成了一種更為靈活的應用環境,網絡管理員可以針對不同的服務面向不同的用戶開放,也就是能自由地設置各個用戶的不同訪問權限。
    參考鏈接:https://www.cnblogs.com/Rivend/p/12052499.html

    12、select、poll、epoll 模型的區別?

    POLL模型

    Poll功能:監測文件描述符上,是否有某些事件發生
    1.函數:
    #include<poll.h>
    int poll(struct pollfd fds,unsigned int nfds,int timeout);
    參數:
    (1)fds:是一個poll函數監聽的struct pollfd結構類型的數組,每一個元素中,包含了三部分內容:文件描述符,監聽的事件集合,返回的事件集合。
    pollfd結構體定義如下:
    struct pollfd
    {
    int fd; //文件描述符(scoket描述符)
    short events; //等待的事件
    short revents; //實際發生了的事件
    };
    event和revent的取值是一樣的,常用的事件:
    POLLIN 有數據可讀
    POLLOUT 寫數據不會導致堵塞
    POLLMSGIGPOLL 消息可用
    POLLERR 指定的文件描述發生錯誤
    nfds:和select函數的第一個參數相同,最大scoket描述符+1
    timeout:表示poll函數的超時時間,單位是毫秒(ms)
    注意:timeout==0 代表立即返回
    timeout>0 代表等待指定的毫秒數后,返回
    timeout<0 代表永不過期,就是阻塞
    poll的返回值:==0 等待超時
    >0 正常返回
    ==-1 錯誤
    2.和select的區別
    poll沒有socket的FD_SETSIZE(1024)個數的限制
    poll不用每次不會清理監測的socket的集合
    不同與select使用三個位圖來表示三個fdset的方式,poll使用一個Pollfd的指針實現。
    3.poll的缺點
    poll中監聽的文件描述符數目增多時,則:
    和select函數一樣,poll返回后,需要輪詢pollfd來獲取就緒的描述符
    每次調poll都需要大量的pollfd結構從用戶態拷貝到內核中。
    同時連接的大量客戶端在一時刻只有很少的處于就緒狀態,因此隨著監視的描述符數量的增長,其效率也會線性下降。
    select模型:
    select用于IO復用,用于監視多個文件描述符的集合,判斷是否有符合條件的事件發生。
    函數select可以先對需要操作的文件描述符進行查詢,查看是否目標文件描述符可以進行讀寫或者錯誤操作,然后當文件描述符滿足操作的條件的時候才進行真正的IO操作
    函數原型如下:
    int select(int nfds,//nfds最大文件描述符+1
    fd_setreadfds,//監控的所有讀文件描述符集合
    fd_set *writes,//寫集合
    fd_set exceptfds //異常集合
    struct timeval timeout);//超長時間
    返回值:>0正常(正常情況下返回就緒的文件描述符個數)
    =0 超時
    =-1 發生錯誤(select被某個信號中斷它將返回-1并設置errno為EINTR)
    EBADF 文件描述詞為無效的或該文件已關閉
    EINTR 此調用被信號所中斷
    EINVAL 參數n為負值
    #從某個文件描述符的集合中取出某個文件描述符
    void FD_CLR(int fd,fd_setset);
    #測試某個文件描述符是否在某個集合中
    int FD_ISSET(int fd,fd_setset)
    #向某個文件描述符集合中加入文件描述符
    void FD_SET(int fd,fd_set *set);
    #清理文件描述符集合
    void FD_ZERO(fd_set *set);
    注意:文件描述符的集合存在最大的限制,其最大值為FD_SETSIZE=1024
    優點:與多進程多線程技術相比,I/O多路復用技術的最大優勢是系統開銷小,系統不必創建進程,線程,也不必維護這些進城線程,從而大大減小了系統的開銷。I/O多路復用就是通過一種機制,一個進程可以監視多個描述符,一旦某個描述符就緒(一般是寫就緒或讀就緒),能通知程序進行相應的讀寫操作。
    epoll模型:
    epoll是select和poll的增強版本,相對于select和poll來說,epoll更加靈活,沒有描述符限制。epoll用一個文件描述符管理多個描述符,將用戶關系的文件描述符的事件存放到一個內核的一個事件表中,這樣在用戶空間和內核空間的copy只需一次。
    epoll相關的函數:
    #include <sys/epoll.h>
    int epoll_create(int size);
    int epoll_ctl(int epfd,int op,int fd,struct epoll_event *event):
    int epoll_wait(int epfd,struct epoll_event *events,int maxevents,int timeout)
    epoll_create

    功能:用來創建epoll實例,,創建一個epoll的句柄。(注意:最后要關閉epoll的句柄)

    參數size:當創建好這個句柄后,它就是會占用一個fd值,在linux下如果查看/proc/進程id/fd/,是能夠看到這個fd的,所以在使用完epoll后,必須調用close()關閉,否則可能導致fd被耗盡。

    函數描述:epoll_create返回的是一個文件描述符,也就是說epoll是以特殊文件的方式體現給用戶,size提示操作系統,用戶可能使用多少個文件描述符,該參數已廢棄,填寫一個大于0的正整數

    返回值:大于0:成功,-1:出錯

    epoll_ctl
    功能:用來增加或移除被epoll所監聽的文件描述符,epoll的事件注冊函數(epoll在這里先注冊要監聽的事件類型)

    參數:epfd :epoll上下文描述符,就是epoll_create函數的返回值

    op:EPOLL_CTL_ADD向epoll監聽集合當中添加socket描述符

    EPOLL_CTL_DEL從epoll監聽當中刪除socket描述符

    EPOLL_CTL_MOD修改

    fd socket描述符,對TCP來說就是accept函數的返回值

    event 在向epoll監聽集合當中添加socket描述符的同時,為描述符綁定一個觸發事件

    event可以是以下宏的集合:

    EPOLLIN:表示對應的文件描述符可以讀(包括對端socket正常關閉)

    EPOLLOUT:表示對應的文件描述符可以寫;

    EPOLLPRI:表示對應的文件描述符有緊急的數據可以讀

    EPOLLERR:表示對應的文件描述符發生錯誤

    EPOLLHUP:表示對應的文件描述符被掛斷

    EPOLLET:將EPOLL設為邊緣觸發模式,這是相對于水平觸發來說的

    EPOLLONESHOT:只監聽一次事件,當監聽完這次事件之后,如果還需要繼續監聽這個socket的話,需要再次把這個socket加入到EPOLL隊列里。

    返回值:0:成功 -1:出錯

    epoll_wait

    功能:用來等待發生在監聽描述符上的事件的產生,類似于select調用。(等待epfd_所代表的epoll實例中監聽的事件發生,events指針返回已經準備好的事件,最多有maxevents個,參數maxevents必須大于零)

    參數:epfd:標識epoll的文件描述符

    events:用來從內核得到事件的集合maxevents:告知內核這個events有多大,這個maxevents的值不能大于創建epoll—_create()時的sizetimeout:是超時時間

    返回值:return>0,發生事件個數 =0 時間到 -1 出錯

    該函數返回需要處理的事件數目,如返回0表示已超時。

    epoll的優點:

    1、支持一個進程打開大數目的socket描述符(FD)

    select最不能忍受的是一個進程所打開的FD是有一定限制的,由FD_SETSIZE設置,默認值是1024,對于那些需要支持的上萬連接數目的IM服務器來說顯然太少了。不過epoll則沒有這個限制,它所支持的FD上限是最大可以打開文件的數目,這個數字遠大于1024,比如,在1GB內存的機器上大約是10萬左右,具體數目可以cat/pro/sys/fs/file-max查看,一般來說這個數目和系統內存關系很大。

    2.IO效率不隨FD數目增加而線性下降

    傳統的select/poll另一個致命弱點就是當你擁有一個很大的socket集合,不過由于網絡延時,任一時間只有部分的socket是“活躍”的,但是select/poll每次調用都會線性掃描全部的集合,導致效率呈現線性下降,而epoll不存在此問題。

    3.使用mmap加速內核與用戶空間的消息傳遞

    epoll是通過內核于用戶空間mmap同一塊內存實現的

    epoll、poll、select三者的區別與比較:

    select、poll實現需要自己不斷輪詢所有fd集合,直到設備就緒,此段時間,它們可能多次睡眠與喚醒交替進行。epoll雖需要調用epoll_wait不斷輪詢就緒鏈表,也會經歷多次睡眠和喚醒交替,但是它是設備就緒時,調用回調函數,就把就緒fd放入就緒鏈表中,并喚醒在epoll_wait中進入睡眠的進程。雖然都要睡眠和喚醒交替,但是select和poll在醒著時要遍歷整個fd集合,而epoll在醒著時只要判斷一下就緒鏈表是否為空就行了(可以節省大量的CPU時間)。

    select,poll每次調用都要把fd集合從用戶態網內核態拷貝一次,而epoll只要拷貝一次。

    下面列出如下表格來進行比較:

    總結:I/O多路復用就通過一種機制,可以監視多個描述符,一旦某個描述符就緒,能夠通知程序進行相應的讀寫操作。select、poll、epoll都是I/O多路復用的機制。但select、poll、epoll本質上都是同步I/O,因為他們都需要在讀寫事件就緒后自己負責進行讀寫,也就是說這個讀寫過程是阻塞的,而異步I/O則無需自己負責進行讀寫,異步I/O的實現會負責把數據從內核拷貝到用戶空間。
    ————————————————
    版權聲明:本文為CSDN博主「weixin_42904113」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/weixin_42904113/article/details/97647412

    13、簡述 進程、線程、協程的區別 以及應用場景?

    1.進程是計算器最小資源分配單位 .

    2.線程是CPU調度的最小單位 .

    3.進程切換需要的資源很最大,效率很低 .

    4.線程切換需要的資源一般,效率一般(當然了在不考慮GIL的情況下) .

    5.協程切換任務資源很小,效率高(協程本身并不存在,是程序員通過控制IO操作完成) .

    6.多進程、多線程根據cpu核數不一樣可能是并行的,但是協程是在一個線程中 所以是并發.

    進程:

    一個運行的程序(代碼)就是一個進程,沒有運行的代碼叫程序,進程是系統資源分配的最小單位,進程擁有自己獨立的內存空間,所以進程間數據不共享,開銷大。

    線程:

    調度執行的最小單位,也叫執行路徑,不能獨立存在,依賴進程存在一個進程至少有一個線程,叫主線程,而多個線程共享內存(數據共享,共享全局變量),從而極大地提高了程序的運行效率。

    協程:

    是一種用戶態的輕量級線程,協程的調度完全由用戶控制。

    協程擁有自己的寄存器上下文和棧。

    協程調度切換時,將寄存器上下文和棧保存到其他地方,在切回來的時候,恢復先前保存的寄存器上下文和棧,直接操作棧則基本沒有內核切換的開銷,

    可以不加鎖的訪問全局變量,所以上下文的切換非常快。
    原文鏈接:https://www.cnblogs.com/Rivend/p/12052550.html

    14、GIL鎖是什么鬼?

    全局解釋鎖,每次只能一個線程獲得cpu的使用權:為了線程安全,也就是為了解決多線程之間的數據完整性和狀態同步而加的鎖,因為我們知道線程之間的數據是共享的。

    大神講解:http://cenalulu.github.io/python/gil-in-python/

    15、Python中如何使用線程池和進程池?

    為什么要有進程池?進程池的概念。

    在程序實際處理問題過程中,忙時會有成千上萬的任務需要被執行,閑時可能只有零星任務。

    那么在成千上萬個任務需要被執行的時候,我們就需要去創建成千上萬個進程么?首先,創建進程需要消耗時間,銷毀進程也需要消耗時間。

    第二即便開啟了成千上萬的進程,操作系統也不能讓他們同時執行,這樣反而會影響程序的效率。

    因此我們不能無限制的根據任務開啟或者結束進程。那么我們要怎么做呢?

    在這里,要給大家介紹一個進程池的概念,定義一個池子,在里面放上固定數量的進程,有需求來了,就拿一個池中的進程來處理任務,

    等到處理完畢,進程并不關閉,而是將進程再放回進程池中繼續等待任務。如果有很多任務需要執行,池中的進程數量不夠,任務就要等待之前的進程執行任務完畢歸來,

    拿到空閑進程才能繼續執行。也就是說,池中進程的數量是固定的,那么同一時間最多有固定數量的進程在運行。這樣不會增加操作系統的調度難度,還節省了開閉進程的時間,也一定程度上能夠實現并發效果。

    from multiprocessing import Pool from multiprocessing import Process import time import osdef func(n):print("子進程開始: %s"%n, os.getpid())time.sleep(1)print("子進程結束: %s" % n, os.getpid())if __name__ == "__main__":# 開啟了5個進程pool = Pool(5)for i in range(10):# 正常情況下先執行5個start 后執行5個endp = Process(target=func,args=(i,))p.start()

    線程池的使用

    import time from concurrent.futures import ThreadPoolExecutordef func(n):print(n)time.sleep(1)return n * 10t_lst = []# 定義一個線程池(默認 不要超過cup個數*5) tpool = ThreadPoolExecutor(max_workers=5)for i in range(20):# 傳值(開啟20個子線程)t = tpool.submit(func, i)t_lst.append(t)# 相當于 close + join tpool.shutdown()print("主線程")for t in t_lst:# t.result() 接受返回值print("\033[31m ==== \033[0m", t.result())

    16、threading.local的作用?

    **threading.local()這個方法的特點用來保存一個全局變量,但是這個全局變量只有在當前線程才能訪問,如果你在開發多線程應用的時候 需要每個線程保存一個單獨的數據供當前線程操作,可以考慮使用這個方法,簡單有效。**舉例:每個子線程使用全局對象a,但每個線程定義的屬性a.xx是該線程獨有的,Python提供了 threading.local 類,將這個類實例化得到一個全局對象,但是不同的線程使用這個對象存儲的數據其它線程不可見(本質上就是不同的線程使用這個對象時為其創建一個獨立的字典)。

    基本概念:同一進程內的內存棧是全局的。

    threading.local本質上是對全局字典對象管理類的一個封裝,

    內部自動為每個線程維護一個空間(字典),用于當前存取屬于自己的值。保證線程之間的數據隔離。

    主要的目的是線程之間的數據隔離。

    當然,自己寫也不是不可以,但開發的一個宗旨是不必重復造輪子。

    案例源碼:

    import time import threadinglocal = threading.local()def func(n):print(threading.current_thread())local.val = ntime.sleep(2)print(n)for i in range(10):t = threading.Thread(target=func,args=(i,))t.start()

    實質上local.val = n等效于local._local__impl.dicts[‘thread_id’][‘val’] = n

    另外需要注意的是local類重寫了取值方法。
    搬運與:https://www.cnblogs.com/insane-Mr-Li/p/12092029.html

    17、進程之間如何進行通信?

    1、管道
    我們來看一條 Linux 的語句

    netstat -tulnp | grep 8080

    學過 Linux 命名的估計都懂這條語句的含義,其中”|“是管道的意思,它的作用就是把前一條命令的輸出作為后一條命令的輸入。在這里就是把 netstat -tulnp 的輸出結果作為 grep 8080 這條命令的輸入。如果兩個進程要進行通信的話,就可以用這種管道來進行通信了,并且我們可以知道這條豎線是沒有名字的,所以我們把這種通信方式稱之為匿名管道。

    并且這種通信方式是單向的,只能把第一個命令的輸出作為第二個命令的輸入,如果進程之間想要互相通信的話,那么需要創建兩個管道。

    居然有匿名管道,那也意味著有命名管道,下面我們來創建一個命名管道。

    mkfifo test

    這條命令創建了一個名字為 test 的命名管道。

    接下來我們用一個進程向這個管道里面寫數據,然后有另外一個進程把里面的數據讀出來。

    echo "this is a pipe" > test // 寫數據

    這個時候管道的內容沒有被讀出的話,那么這個命令就會一直停在這里,只有當另外一個進程把 test 里面的內容讀出來的時候這條命令才會結束。接下來我們用另外一個進程來讀取

    cat < test // 讀數據

    我們可以看到,test 里面的數據被讀取出來了。上一條命令也執行結束了。

    從上面的例子可以看出,管道的通知機制類似于緩存,就像一個進程把數據放在某個緩存區域,然后等著另外一個進程去拿,并且是管道是單向傳輸的。

    這種通信方式有什么缺點呢?顯然,這種通信方式效率低下,你看,a 進程給 b 進程傳輸數據,只能等待 b 進程取了數據之后 a 進程才能返回。

    所以管道不適合頻繁通信的進程。當然,他也有它的優點,例如比較簡單,能夠保證我們的數據已經真的被其他進程拿走了。我們平時用 Linux 的時候,也算是經常用。

    2、消息隊列
    那我們能不能把進程的數據放在某個內存之后就馬上讓進程返回呢?無需等待其他進程來取就返回呢?

    答是可以的,我們可以用消息隊列的通信模式來解決這個問題,例如 a 進程要給 b 進程發送消息,只需要把消息放在對應的消息隊列里就行了,b 進程需要的時候再去對應的
    消息隊列里取出來。同理,b 進程要個 a 進程發送消息也是一樣。這種通信方式也類似于緩存吧。

    這種通信方式有缺點嗎?答是有的,如果 a 進程發送的數據占的內存比較大,并且兩個進程之間的通信特別頻繁的話,消息隊列模型就不大適合了。因為 a 發送的數據很大的話,意味**發送消息(拷貝)**這個過程需要花很多時間來讀內存。

    哪有沒有什么解決方案呢?答是有的,請繼續往下看。

    3、共享內存
    共享內存這個通信方式就可以很好著解決拷貝所消耗的時間了。

    這個可能有人會問了,每個進程不是有自己的獨立內存嗎?兩個進程怎么就可以共享一塊內存了?

    我們都知道,系統加載一個進程的時候,分配給進程的內存并不是實際物理內存,而是虛擬內存空間。那么我們可以讓兩個進程各自拿出一塊虛擬地址空間來,然后映射到相同的物理內存中,這樣,兩個進程雖然有著獨立的虛擬內存空間,但有一部分卻是映射到相同的物理內存,這就完成了內存共享機制了。

    4、信號量
    共享內存最大的問題是什么?沒錯,就是多進程競爭內存的問題,就像類似于我們平時說的線程安全問題。如何解決這個問題?這個時候我們的信號量就上場了。

    信號量的本質就是一個計數器,用來實現進程之間的互斥與同步。例如信號量的初始值是 1,然后 a 進程來訪問內存1的時候,我們就把信號量的值設為 0,然后進程b 也要來訪問內存1的時候,看到信號量的值為 0 就知道已經有進程在訪問內存1了,這個時候進程 b 就會訪問不了內存1。所以說,信號量也是進程之間的一種通信方式。

    5、Socket
    上面我們說的共享內存、管道、信號量、消息隊列,他們都是多個進程在一臺主機之間的通信,那兩個相隔幾千里的進程能夠進行通信嗎?

    答是必須的,這個時候 Socket 這家伙就派上用場了,例如我們平時通過瀏覽器發起一個 http 請求,然后服務器給你返回對應的數據,這種就是采用 Socket 的通信方式了。

    總結
    所以,進程之間的通信方式有:

    1、管道
    2、消息隊列
    3、共享內存
    4、信號量
    5、Socket

    講到這里也就完結了,之前我看進程之間的通信方式的時候,也算是死記硬背,并沒有去理解他們之間的關系,優缺點,為什么會有這種通信方式。所以最近花點時間去研究了一下,
    整理了這篇文章,相信看完這篇文章,你就可以更好著理解各種通信方式的由來的。
    ————————————————
    版權聲明:本文為CSDN博主「帥地」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/m0_37907797/article/details/103188294

    18、什么是并發和并行?

    做并發編程之前,必須首先理解什么是并發,什么是并行,什么是并發編程,什么是并行編程。

    并發(concurrency)和并行(parallellism)是:

    解釋一:并行是指兩個或者多個事件在同一時刻發生;而并發是指兩個或多個事件在同一時間間隔發生。
    解釋二:并行是在不同實體上的多個事件,并發是在同一實體上的多個事件。
    解釋三:在一臺處理器上“同時”處理多個任務,在多臺處理器上同時處理多個任務。如hadoop分布式集群
    所以并發編程的目標是充分的利用處理器的每一個核,以達到最高的處理性能

    并發(Concurrent),
    在操作系統中,是指一個時間段中有幾個程序都處于已啟動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行。

    就想前面提到的操作系統的時間片分時調度。打游戲和聽音樂兩件事情在同一個時間段內都是在同一臺電腦上完成了從開始到結束的動作。那么,就可以說聽音樂和打游戲是并發的。

    并行
    并行(Parallel),當系統有一個以上CPU時,當一個CPU執行一個進程時,另一個CPU可以執行另一個進程,兩個進程互不搶占CPU資源,可以同時進行,這種方式我們稱之為并行(Parallel)。

    這里面有一個很重要的點,那就是系統要有多個CPU才會出現并行。在有多個CPU的情況下,才會出現真正意義上的『同時進行』。

    并發與并行
    我們兩個人在吃午飯。你在吃飯的整個過程中,吃了米飯、吃了蔬菜、吃了牛肉。吃米飯、吃蔬菜、吃牛肉這三件事其實就是并發執行的。

    對于你來說,整個過程中看似是同時完成的的。但其實你是在吃不同的東西之間來回切換的。

    還是我們兩個人吃午飯。在吃飯過程中,你吃了米飯、蔬菜、牛肉。我也吃了米飯、蔬菜和牛肉。

    我們兩個人之間的吃飯就是并行的。兩個人之間可以在同一時間點一起吃牛肉,或者一個吃牛肉,一個吃蔬菜。之間是互不影響的。


    所以,并發是指在一段時間內宏觀上多個程序同時運行。并行指的是同一個時刻,多個任務確實真的在同時運行。

    并發和并行的區別

    并發,指的是多個事情,在同一時間段內同時發生了。

    并行,指的是多個事情,在同一時間點上同時發生了。

    并發的多個任務之間是互相搶占資源的。

    并行的多個任務之間是不互相搶占資源的、

    只有在多CPU的情況中,才會發生并行。否則,看似同時發生的事情,其實都是并發執行的。

    19、進程鎖和線程鎖的作用?

    線程鎖:
     多線程可以同時運行多個任務但是當多個線程同時訪問共享數據時,可能導致數據不同步,甚至錯誤! so,不使用線程鎖, 可能導致錯誤

    大家都不陌生,主要用來給方法、代碼塊加鎖。當某個方法或者代碼塊使用鎖時,那么在同一時刻至多僅有有一個線程在執行該段代碼。

    當有多個線程訪問同一對象的加鎖方法/代碼塊時,同一時間只有一個線程在執行,其余線程必須要等待當前線程執行完之后才能執行該代碼段。但是,其余線程是可以訪問該對象中的非加鎖代碼塊的。

    進程鎖:
    也是為了控制同一操作系統中多個進程訪問一個共享資源,

    只是因為程序的獨立性,各個進程是無法控制其他進程對資源的訪問的,

    但是可以使用本地系統的信號量控制(操作系統基本知識)

    優點:保證資源同步
    缺點:有等待肯定會慢
    原文鏈接:w.cnblogs.com/Rivend/p/12058156.html

    20、解釋什么是異步非阻塞?

    在IO和網絡編程中,我們經常看到幾個概念:同步、異步、阻塞、非阻塞。

    同步和異步
      同步和異步是針對應用程序和內核的交互而言的,同步指的是用戶進程觸發IO 操作并等待或者輪詢的去查看IO 操作是否就緒,而異步是指用戶進程觸發IO 操作以后便開始做自己的事情,而當IO 操作已經完成的時候會得到IO 完成的通知。

    阻塞和非阻塞
      阻塞和非阻塞是針對于進程在訪問數據的時候,根據IO操作的就緒狀態來采取的不同方式,說白了是一種讀取或者寫入操作方法的實現方式,阻塞方式下讀取或者寫入函數將一直等待,而非阻塞方式下,讀取或者寫入方法會立即返回一個狀態值。

    理解方式
      乍一看這四個概念的解釋會瞬間感到頭大,也經常講同步異步等同于阻塞非阻塞,其實,區分他們非常簡單。

    同步異步與阻塞非阻塞的主要區別是針對對象不同。

    同步異步是針對調用者來說的,調用者發起一個請求后,一直干等被調用者的反饋就是同步,不必等去做別的事就是異步。
      阻塞非阻塞是針對被調用者來說的,被調用者收到一個請求后,做完請求任務后才給出反饋就是阻塞,收到請求直接給出反饋再去做任務就是非阻塞。

    在公交站等公交

    對調用者-乘客而言:

    1,一直干望著公交來的方向,就是同步。

    2,不望著公交來的方向,掏出筆記本改bug,聽公交站廣播是否到車,就是異步。

    對被動用者-公交系統而言:

    1,公交站有廣播的就是非阻塞的。

    2,公交站沒有廣播的就是阻塞的。
      
    原文鏈接;https://www.cnblogs.com/Rivend/p/12065474.htmlv

    21、路由器和交換機的區別?

    第一,使用交換機上網是分別撥號,各自使用自己的寬帶賬號,大家上網互不影響。而路由器是共用一個寬帶賬號,大家上網會相互影響。

    第二,交換機工作在中繼層,交換機根據MAC地址尋址。路由器工作在網絡層,根據IP地址尋址。

    第三,交換機可以使連接它的多臺電腦組成局域網,如果還有代理服務器的話還可以實現同時上網功能,但是交換機沒有路由器的自動識別數據包發送和到達地址的功能。

    第四,路由器提供了防火墻的服務。路由器僅僅轉發特定地址的數據包,不傳送不支持路由協議的數據包傳送。

    22、什么是域名解析?

    域名解析也稱為域名指向、服來務器設置、域名配置、反向ip注冊等。簡單地說,將一個可記憶的域名解析為一個ip,服務由dns服務器完成,dns服務器將域名解析為一個ip地址,并將一個子目錄綁定到ip地址主機上知的域名。

    域名解析就像在移動電話上使用對方的姓名來表示對方的電話號碼一樣,因為它很容易記道住。Dns是文本到ip號碼的解析。
    域名解析的過程詳解

    23、如何修改本地hosts文件?

    1.window7修改本地hosts文件

    # window7系統hosts文件位置 C:\Windows\System32\drivers\etc


    2.linux

    # linux系統hosts文件位置 [root@localhost etc]# cat /etc/hosts

    24、生產者消費者模型應用場景及優勢?

    在 工作中,大家可能會碰到這樣一種情況:某個模塊負責產生數據,這些數據由另一個模塊來負責處理(此處的模塊是廣義的,可以是類、函數、線程、進程等)。

    產 生數據的模塊,就形象地稱為生產者;而處理數據的模塊,就稱為消費者。

    在生產者與消費者之間在加個緩沖區,我們形象的稱之為倉庫,生產者負責往倉庫了進商 品,而消費者負責從倉庫里拿商品,這就構成了生產者消費者模型。

    結構圖如下:

    生產者消費者模型的優點:

    1、解耦

    假設生產者和消費者分別是兩個類。

    如果讓生產者直接調用消費者的某個方法,那么生產者對于消費者就會產生依賴(也就是耦合)。

    將來如果消費者的代碼發生變化, 可能會影響到生產者。而如果兩者都依賴于某個緩沖區,兩者之間不直接依賴,耦合也就相應降低了。

    舉個例子,我們去郵局投遞信件,如果不使用郵筒(也就是緩沖區),你必須得把信直接交給郵遞員。

    有同學會說,直接給郵遞員不是挺簡單的嘛?其實不簡單,你必須 得認識誰是郵遞員,才能把信給他(光憑身上穿的制服,萬一有人假冒,就慘了)。

    這就產生和你和郵遞員之間的依賴(相當于生產者和消費者的強耦合)。

    萬一哪天郵遞員換人了,你還要重新認識一下(相當于消費者變化導致修改生產者代碼)。

    而郵筒相對來說比較固定,你依賴它的成本就比較低(相當于和緩沖區之間的弱耦合)。

    2、支持并發

    由于生產者與消費者是兩個獨立的并發體,他們之間是用緩沖區作為橋梁連接,生產者只需要往緩沖區里丟數據,

    就可以繼續生產下一個數據,而消費者只需要從緩沖區了拿數據即可,這樣就不會因為彼此的處理速度而發生阻塞。

    接上面的例子,如果我們不使用郵筒,我們就得在郵局等郵遞員,直到他回來,

    我們把信件交給他,這期間我們啥事兒都不能干(也就是生產者阻塞),或者郵遞員得挨家挨戶問,誰要寄信(相當于消費者輪詢)。

    3、支持忙閑不均

    緩沖區還有另一個好處。如果制造數據的速度時快時慢,緩沖區的好處就體現出來了。

    當數據制造快的時候,消費者來不及處理,未處理的數據可以暫時存在緩沖區中。 等生產者的制造速度慢下來,消費者再慢慢處理掉。

    為了充分復用,我們再拿寄信的例子來說事。假設郵遞員一次只能帶走1000封信。萬一某次碰上情人節(也可能是圣誕節)送賀卡,

    需要寄出去的信超過1000封,這時 候郵筒這個緩沖區就派上用場了。郵遞員把來不及帶走的信暫存在郵筒中,等下次過來 時再拿走。

    應用場景:

    使用多線程,在做爬蟲的時候,生產者用著產生url鏈接,消費者用于獲取url數據,在隊列的幫助下可以使用多線程加快爬蟲速度。

    import time import threading import Queue import urllib2class Consumer(threading.Thread):def __init__(self, queue):threading.Thread.__init__(self)self._queue = queuedef run(self):while True:content = self._queue.get()print contentif isinstance(content, str) and content == 'quit':breakresponse = urllib2.urlopen(content)print 'Bye byes!'def Producer():urls = ['http://211.103.242.133:8080/Disease/Details.aspx?id=2258','http://211.103.242.133:8080/Disease/Details.aspx?id=2258','http://211.103.242.133:8080/Disease/Details.aspx?id=2258','http://211.103.242.133:8080/Disease/Details.aspx?id=2258']queue = Queue.Queue()worker_threads = build_worker_pool(queue, 4)start_time = time.time()for url in urls:queue.put(url)for worker in worker_threads:queue.put('quit')for worker in worker_threads:worker.join()print 'Done! Time taken: {}'.format(time.time() - start_time)def build_worker_pool(queue, size):workers = []for _ in range(size):worker = Consumer(queue)worker.start()workers.append(worker)return workersif __name__ == '__main__':Producer()

    25、什么是CDN?有什么用?

    CDN的全稱是內容分發網絡,比如我們客戶端向服務器請求一個數據,當這個數據很大,請求頻繁,而且服務器距離客戶端很遠這樣是不是很浪費資源,浪費大量的帶寬,嚴重時候還會造成網絡阻塞。而且這樣響應時間非常慢。

    CDN主要由負載均衡,和高速緩存服務器組成。其中分為中心部分和邊緣部分。中心部分就是負責全局負載均衡,當客戶端發送請求,首先會訪問中心CDN,經過全局負載均衡,根據用戶請求的ip 地址,一定的算法,然后算出距離用戶最近,用戶接入量最少得CDN緩存服務器,這樣是不是相當于走了捷徑。因為cdn是介于客戶端和請求服務器之間的一個緩存服務器,有一點點像redis緩存。當然第一次請求的時候,cdn沒有緩存的話,cdn也會請求一次服務器,然后根據服務器返回的數據一方面留給自己緩存作為備用,另一方面也返回給客戶端,好像現在像騰訊網,阿里云都有提供cdn服務器。而且域名配置服務器時候,就可以配到cdn。而且現在應用也很多,比如網絡教學,金融,證券,不允許有過多延遲和數據較大的應用。這就是我大致了解的cdn ,content delivery network ,內容分發網絡。CDN的全稱是Content Delivery Network,即內容分發網絡。其基本思路是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。

    目前的CDN服務主要應用于證券、金融保險、ISP、ICP、網上交易、門戶網站、大中型公司、網絡教學等領域。另外在行業專網、互聯網中都可以用到,甚至可以對局域網進行網絡優化。利用CDN,這些網站無需投資昂貴的各類服務器、設立分站點,特別是流媒體信息的廣泛應用、遠程教學課件等消耗帶寬資源多的媒體信息,應用CDN網絡,把內容復制到網絡的最邊緣,使內容請求點和交付點之間的距離縮至最小,從而促進Web站點性能的提高,具有重要的意義。CDN 網絡的建設主要有企業建設的CDN網絡,為企業服務;IDC的CDN網絡,主要服務于IDC和增值服務;網絡運營上主建的CDN網絡,主要提供內容推送服務;CDN網絡服務商,專門建設的CDN用于做服務,用戶通過與CDN機構進行合作,CDN負責信息傳遞工作,保證信息正常傳輸,維護傳送網絡,而網站只需要內容維護,不再需要考慮流量問題。

    CDN的網絡架構

    CDN網絡架構主要由兩大部分,分為中心和邊緣兩部分,中心指CDN網管中心和DNS重定向解析中心,負責全局負載均衡,設備系統安裝在管理中心機房,邊緣主要指異地節點,CDN分發的載體,主要由Cache和負載均衡器等組成。

    當用戶訪問加入CDN服務的網站時,域名解析請求將最終交給全局負載均衡DNS進行處理。全局負載均衡DNS通過一組預先定義好的策略,將當時最接近用戶的節點地址提供給用戶,使用戶能夠得到快速的服務。同時,它還與分布在世界各地的所有CDNC節點保持通信,搜集各節點的通信狀態,確保不將用戶的請求分配到不可用的CDN節點上,實際上是通過DNS做全局負載均衡。

    對于普通的Internet用戶來講,每個CDN節點就相當于一個放置在它周圍的WEB。通過全局負載均衡DNS的控制,用戶的請求被透明地指向離他最近的節點,節點中CDN服務器會像網站的原始服務器一樣,響應用戶的請求。由于它離用戶更近,因而響應時間必然更快。

    每個CDN節點由兩部分組成:負載均衡設備和高速緩存服務器

    負載均衡設備負責每個節點中各個Cache的負載均衡,保證節點的工作效率;同時,負載均衡設備還負責收集節點與周圍環境的信息,保持與全局負載DNS的通信,實現整個系統的負載均衡。

    高速緩存服務器(Cache)負責存儲客戶網站的大量信息,就像一個靠近用戶的網站服務器一樣響應本地用戶的訪問請求。

    CDN的管理系統是整個系統能夠正常運轉的保證。它不僅能對系統中的各個子系統和設備進行實時監控,對各種故障產生相應的告警,還可以實時監測到系統中總的流量和各節點的流量,并保存在系統的數據庫中,使網管人員能夠方便地進行進一步分析。通過完善的網管系統,用戶可以對系統配置進行修改。

    理論上,最簡單的CDN網絡有一個負責全局負載均衡的DNS和各節點一臺Cache,即可運行。DNS支持根據用戶源IP地址解析不同的IP,實現就近訪問。為了保證高可用性等,需要監視各節點的流量、健康狀況等。一個節點的單臺Cache承載數量不夠時,才需要多臺Cache,多臺Cache同時工作,才需要負載均衡器,使Cache群協同工作。
    ————————————————
    版權聲明:本文為CSDN博主「X_Ming_H」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/xmh594603296/article/details/81435821

    26、LVS是什么及作用?

    一.LVS是什么?
    LVS的英文全稱是Linux Virtual Server,即Linux虛擬服務器。它是我們國家的章文嵩博士的一個開源項目。在linux內存2.6中,它已經成為內核的一部分,在此之前的內核版本則需要重新編譯內核。
    二.LVS能干什么?
    LVS主要用于多服務器的負載均衡。它工作在網絡層,可以實現高性能,高可用的服務器集群技術。它廉價,可把許多低性能的服務器組合在一起形成一個超級服務器。它易用,配置非常簡單,且有多種負載均衡的方法。它穩定可靠,即使在集群的服務器中某臺服務器無法正常工作,也不影響整體效果。另外可擴展性也非常好。

    27、Nginx是什么及作用?

    1 nginx是什么?Welcome to nginx!
    nginx是一款免費開源的高性能HTTP服務器及反向代理服務器(Reverse Proxy)

    2 nginx優點及常用web服務器產品
    靜態web服務軟件

    1 Apache 中小型web服務的主流優點:運行速度快,性能穩定,擴展豐富缺點:以進程為結構基礎,消耗cpu,性能下降2 Lighttpd 開源輕量級web服務器軟件優點:1 安全,快速,兼容性好,靈活2 低開銷,低CPU使用率3 支持大多數apache的重要功能缺點: 功能存在不足,部分代碼缺陷(如對proxy功能不完善)

    動態web服務軟件

    1 Microsoft IIS 微軟旗下產品優點:可靠、安全、性能和擴展能力強缺點:部署成本高2 Tomcat(公貓) Sun公司旗下產品優點:部署安裝方便,系統占有率低,主要的Servlet和JSP容器缺點:功能少,無法滿足復雜業務場景

    nginx優點

    1 高并發連接2 內存消耗少3 穩定性高

    3 Nginx 版本信息
    nginx官網有三個版本

    1 stable version 穩定版(企業用)2 mainline version 開發版(個人用)3 Legacy versions 歷史版

    4 Nginx功能特性
    1.處理靜態文件,索引文件以及自動索引

    2.反向代理加速(無緩存),簡單的負載均衡和容錯3.FastCGI,簡單的負載均衡和容錯4.模塊化的結構。過濾器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI過濾 器中,到同一個 proxy 或者 FastCGI 的多個子請求并發處理5.SSL 和 TLS SNI 支持6.IMAP/POP3代理服務功7.使用外部 HTTP 認證服務器重定向用戶到 IMAP/POP3 后端8.使用外部 HTTP 認證服務器認證用戶后連接重定向到內部的 SMTP 后端

    5 Nginx主要功能
    1 nginx可作為HTTP代理服務和反向代理

    2 nginx可作為負載均衡3 nginx可作為Web緩存

    ————————————————
    版權聲明:本文為CSDN博主「VictoryKingLIU」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/VictoryKingLIU/article/details/91784881

    28、keepalived是什么及作用?

    大神講解,點擊進入

    29、haproxy是什么以及作用?

    HAProxy 是一款提供高可用性、負載均衡以及基于TCP(第四層)和HTTP(第七層)應用的代理軟件,支持虛擬主機,它是免費、快速并且可靠的一種解決方案。

    HAProxy特別適用于那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。

    HAProxy運行在時下的硬件上,完全可以支持數以萬計的 并發連接。

    并且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。

    (作用: 高可用性,負載平衡和用于TCP和基于http的應用程序的代理)
    原文鏈接:
    https://www.cnblogs.com/Rivend/p/12075870.html

    30、什么是負載均衡?

    Load balancing,即負載均衡,是一種計算機技術,用來在多個計算機(計算機集群)、網絡連接、CPU、磁盤驅動器或其他資源中分配負載,以達到最優化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的。
    參考鏈接https://www.cnblogs.com/fanBlog/p/10936190.html

    31、什么是rpc及應用場景?

    l鏈接地址:http://www.manongjc.com/article/72153.html

    32、簡述 asynio模塊的作用和應用場景。

    asyncio是Python 3.4版本引入的標準庫,直接內置了對異步IO的支持。
    asyncio的編程模型就是一個消息循環。我們從asyncio模塊中直接獲取一個EventLoop的引用,然后把需要執行的協程扔到EventLoop中執行,就實現了異步IO。

    作者:把早晨六點的太陽留給我
    鏈接:https://www.jianshu.com/p/17fe7ab54263

    33、簡述 gevent模塊的作用和應用場景。

    當一個greenlet遇到IO操作時,比如訪問網絡,就自動切換到其他的greenlet,等到IO操作完成,再在適當的時候切換回來繼續執行。由于IO操作非常耗時,經常使程序處于等待狀態,有了gevent為我們自動切換協程,就保證總有greenlet在運行,而不是等待IO。
    由于切換是在IO操作時自動完成,所以gevent需要修改Python自帶的一些標準庫,這一過程在啟動時通過monkey patch完成:

    作者:把早晨六點的太陽留給我
    鏈接:https://www.jianshu.com/p/17fe7ab54263

    34、twisted框架的使用和應用?

    Twisted是用Python實現的基于事件驅動的網絡引擎框架,Twisted支持許多常見的傳輸及應用層協議,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。就像Python一樣,Twisted也具有“內置電池”(batteries-included)的特點。Twisted對于其支持的所有協議都帶有客戶端和服務器實現,同時附帶有基于命令行的工具,使得配置和部署產品級的Twisted應用變得非常方便。

    作者:把早晨六點的太陽留給我
    鏈接:https://www.jianshu.com/p/17fe7ab54263

    總結

    以上是生活随笔為你收集整理的Python面试题(第二篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    激情综合久久 | 日韩精品电影在线播放 | 国产人免费人成免费视频 | 五月天丁香综合 | 亚州精品在线视频 | 亚洲精品综合欧美二区变态 | 99中文视频在线 | 欧美日韩xx | 玖玖999| 久久综合婷婷国产二区高清 | 中文字幕在线视频国产 | 久久久黄色免费网站 | 天天干,天天射,天天操,天天摸 | 在线观看小视频 | 97超碰人人澡 | 国产系列 在线观看 | 久久热亚洲 | 欧美一级性生活片 | 综合网婷婷| 久久视频6 | 久热久草| av三级在线免费观看 | 97超碰人人澡人人 | 婷婷福利影院 | 亚洲国产精品小视频 | 免费在线黄| 精品久久久免费 | 久久国产精品成人免费浪潮 | 国产原创av片 | 天天干天天做天天爱 | 亚洲成人免费 | 91丨九色丨蝌蚪丨老版 | 射射射av| 久久九九久久九九 | 99久在线精品99re8热视频 | 精品乱码一区二区三四区 | 国产高清不卡一区二区三区 | 精品在线播放视频 | 日韩三级久久 | 国产剧情在线一区 | av 一区二区三区 | 视频直播国产精品 | 久久久久激情电影 | 久久精品视频在线免费观看 | 一级黄色免费 | 亚洲不卡av一区二区三区 | 国产真实精品久久二三区 | 亚洲2019精品 | 中文字幕在线观看国产 | 亚洲综合导航 | 日本精品午夜 | 一区二区三区av在线 | 国产黑丝一区二区三区 | 韩国三级一区 | 啪啪免费试看 | 日本久久久久久久久久 | 精品九九九 | 久插视频| 久久久久久久久久亚洲精品 | 夜夜躁狠狠燥 | 一级淫片在线观看 | 国产精品久久一区二区三区, | av在线h | 国产精品视频你懂的 | 日韩无在线| 国产黄色精品在线 | 国产精品区二区三区日本 | 天天插天天 | 九九免费在线观看视频 | 国产一区二区三区视频在线 | 狠狠干电影 | 免费合欢视频成人app | 国产婷婷视频在线 | 俺要去色综合狠狠 | 午夜狠狠操 | 久久图 | 97国产大学生情侣白嫩酒店 | 热久久这里只有精品 | 亚洲视频在线播放 | 日本视频高清 | 亚洲日本欧美在线 | 久久国产精品色婷婷 | 在线观看岛国片 | 日本亚洲国产 | 91高清免费看 | 99国产精品久久久久久久久久 | 一级成人免费 | 成人免费av电影 | 色婷婷一区 | 成人教育av | 91亚洲国产| 久草香蕉在线视频 | 国产精品国产三级在线专区 | 国产精品一区二区av影院萌芽 | 日韩亚洲国产精品 | 久久久网 | 麻豆视频免费播放 | 一区二区网 | 97福利在线 | 国产麻豆电影在线观看 | 欧美性色综合网 | 国产精品剧情在线亚洲 | 中文字幕中文字幕在线中文字幕三区 | 日韩精品视频在线观看网址 | 日日干天天操 | 在线免费观看视频一区二区三区 | 成人天堂网 | 日韩av网页 | 亚洲一区日韩在线 | 亚洲欧洲在线视频 | 激情综合啪 | 成人黄色av免费在线观看 | 亚洲成色777777在线观看影院 | 操操日日| 中文字幕在线视频网站 | av免费在线看网站 | 亚洲国产日韩av | 成人av高清| 精品夜夜嗨av一区二区三区 | 国产小视频在线 | 久久伊人精品一区二区三区 | 成人在线免费av | 91在线视频观看 | 日韩电影在线观看一区二区三区 | 激情婷婷色 | 特级毛片在线免费观看 | 新av在线| 五月天激情综合 | 狠狠干狠狠久久 | 国产午夜精品久久 | 亚洲国产激情 | 久久伊人婷婷 | 国产黄色在线看 | 日韩色在线观看 | 麻豆成人网 | 国产无套视频 | 91麻豆福利| 国产精品四虎 | 欧美日韩中文字幕综合视频 | 欧美成年人在线观看 | 国产精品一区二区果冻传媒 | 欧美激情综合五月色丁香小说 | 在线www色 | 丁香五月缴情综合网 | 国产一级视屏 | 欧美另类亚洲 | 9999在线视频| 一本一本久久a久久精品综合 | av日韩国产 | 免费看日韩 | 亚洲精品网址在线观看 | 久久综合久久综合久久 | 久久国产剧场电影 | 在线免费观看国产 | 一区二区三区高清在线观看 | 最新av电影网址 | 国产麻豆精品95视频 | 亚洲激情 欧美激情 | 黄色免费在线视频 | 婷婷色 亚洲 | 99精品欧美一区二区蜜桃免费 | 欧美精品一级视频 | 天天爱天天爽 | 一区二区三区国 | 人人网av | 国产精品美女久久久久久久 | 久草在线播放视频 | 伊人成人精品 | 在线视频精品播放 | 欧美天天射| 久草视频国产 | 丁香视频免费观看 | 国产美女免费观看 | 日韩首页 | 日韩性xxx| 天天爽夜夜爽精品视频婷婷 | 97超碰色偷偷 | 国内精品在线一区 | 日韩免费视频观看 | 婷婷爱五月天 | 色偷偷人人澡久久超碰69 | 日韩伦理片一区二区三区 | 日韩中文字幕亚洲一区二区va在线 | 欧美日韩国产成人 | 久久综合九色综合97婷婷女人 | 久久婷婷综合激情 | 免费观看的av | 久久亚洲专区 | 91香蕉国产 | 中文视频在线播放 | 久久伊人综合 | 久艹视频免费观看 | 97在线观看免费高清 | 免费看一及片 | 精品国产网址 | 免费的黄色的网站 | 欧美日韩精品免费观看视频 | 午夜精品福利影院 | 在线看av的网址 | 国产打女人屁股调教97 | 久久精品久久精品久久39 | 国产高清无av久久 | 九九视频网站 | 97在线视频免费观看 | 日日操日日 | 国内久久视频 | 日韩在线视频国产 | 在线观看免费观看在线91 | 色操插 | 成人黄色大片 | 97人人澡人人添人人爽超碰 | 久久久久在线 | 国产精品99久久久久久人免费 | 日本高清久久久 | 国产中文字幕一区二区 | 精品在线视频观看 | 六月丁香六月婷婷 | 久久久久久国产精品久久 | 亚洲精品国产精品久久99热 | 黄色大片日本免费大片 | 亚洲激情在线观看 | 久久久久久影视 | 在线视频欧美精品 | 天天曰天天曰 | 欧美日韩国产在线观看 | 国产成人777777 | 少妇精品久久久一区二区免费 | 99这里只有精品视频 | 国产成人精品免高潮在线观看 | 99视频一区二区 | 免费观看视频的网站 | 最近2019中文免费高清视频观看www99 | 免费无遮挡动漫网站 | 97超碰在线免费 | 国产资源免费在线观看 | 五月天亚洲综合小说网 | 亚洲春色综合另类校园电影 | av免费网站观看 | 13日本xxxxxⅹxxx20 | 久一在线 | 丁香五月亚洲综合在线 | 欧美精品三级在线观看 | 91欧美在线 | 日韩视频免费观看高清完整版在线 | 久久精品中文字幕少妇 | 亚洲黄色免费在线 | 伊人天堂av| 国产日产精品一区二区三区四区的观看方式 | 911av视频| 97免费在线观看视频 | 日韩免费中文字幕 | 欧美日韩亚洲第一 | 日韩一区二区三区不卡 | 亚州精品在线视频 | 国产精品久久久久久久久免费看 | 亚洲丝袜一区 | 亚洲精品视频在线观看视频 | 亚洲免费av片 | 国产精品欧美久久久久无广告 | 日韩精品免费一区二区在线观看 | 久久综合成人网 | 99久久er热在这里只有精品15 | 91黄色在线视频 | 日日夜夜精品免费 | 黄色av免费 | 久久久久福利视频 | 成人在线观看影院 | 伊人狠狠干 | 成人黄色毛片视频 | 免费在线中文字幕 | 亚洲精品国产电影 | 日本性高潮视频 | 中文国产成人精品久久一 | 区一区二区三在线观看 | 亚洲专区在线视频 | 国产女人40精品一区毛片视频 | 欧美日韩国产欧美 | 精品国产乱码久久久久久久 | 国产中文字幕在线看 | 91麻豆免费版 | 人人干网站 | 91免费看黄 | 麻豆视频免费在线 | 激情综合五月天 | 激情视频久久 | 中文字幕电影高清在线观看 | 欧美日韩aa| 在线观看www91| 在线视频免费观看 | 九九九国产 | 亚洲视屏在线播放 | 国产网站av | 久久久亚洲精华液 | 美女黄色网在线播放 | 中文免费观看 | 久久久久久久影视 | 久久久免费精品 | 久草资源免费 | 成人午夜电影在线观看 | 亚洲天天草 | 97超碰人人模人人人爽人人爱 | 欧美久久久久 | 亚洲国产精品va在线看黑人动漫 | 国内精品久久久久影院日本资源 | 亚洲激情六月 | 在线播放日韩av | 精品国内| 国产精品免费人成网站 | 国产亚洲欧美一区 | 爱干视频 | 日本精品久久久久影院 | 国产精品黑丝在线观看 | 国产精品手机在线观看 | 欧美高清成人 | 成人91在线 | 狠狠干天天| 日韩理论电影在线 | 成人福利在线 | 四虎国产精品成人免费影视 | 亚洲国产网站 | 久久国产精品久久久久 | 国产永久免费高清在线观看视频 | 国产女人18毛片水真多18精品 | 久久久久亚洲精品 | 人人爱人人添 | 99在线视频免费观看 | 久久国产高清 | 成 人 黄 色视频免费播放 | 91看片看淫黄大片 | 欧美成人性战久久 | 免费视频久久久 | 国语自产偷拍精品视频偷 | 欧美精品久久久久久久久免 | 国产破处在线视频 | 国内99视频 | 欧美日韩国产网站 | 在线91播放 | 免费能看的黄色片 | 99久久久国产精品美女 | 久久狠狠干 | 日本久久久久久科技有限公司 | 精品国产乱码久久 | 欧美成人黄 | 国产一区免费在线观看 | 欧美性生活免费 | 欧美一级性生活 | 国产一级片久久 | av7777777| 黄色小网站免费看 | 日韩av播放在线 | 在线观看午夜av | 日韩免费观看一区二区三区 | 天天色草 | 人人看黄色 | 久久国产一区二区三区 | 久久久免费观看 | 久久激情电影 | 欧美日韩高清一区 | 精品久久久久久久久久久久久久久久 | av综合站 | 亚洲视频播放 | 国产网站av | 五月婷婷伊人网 | 亚州精品一二三区 | 激情久久久久久久久久久久久久久久 | 狠狠的日日 | 国产在线中文 | 97在线影院 | 国产精品福利久久久 | 99国产精品一区 | 黄色av电影在线观看 | 国产高清成人av | 久久理论影院 | 在线国产激情视频 | 在线看国产精品 | 亚洲高清视频在线观看 | 麻豆国产精品va在线观看不卡 | 久久久综合精品 | 国产成人333kkk | 日日操天天射 | 久久久久草 | 国内久久| 国产精品综合在线 | 一级黄视频 | 亚洲免费在线观看视频 | www.婷婷色 | 人人爽人人爽人人片av免 | 亚洲三级国产 | 99这里只有 | 国产亚洲小视频 | 毛片888| 一区二区精品视频 | 男女靠逼app| 久久久久久久久久久久亚洲 | 国产黄色大片 | 亚洲综合婷婷 | 久久av观看 | 一本到视频在线观看 | 国产 欧美 日本 | 最新av在线免费观看 | 国产主播大尺度精品福利免费 | 久久99国产精品久久99 | 97麻豆视频 | 成人小视频在线观看免费 | 亚洲精品久久久久久久不卡四虎 | 国产精品成人一区二区三区 | 免费精品在线 | 午夜视频在线瓜伦 | 日韩综合一区二区三区 | 日韩专区视频 | 亚洲国产欧美一区二区三区丁香婷 | 日韩一区二区三区高清在线观看 | 在线视频a| 日韩精品久久久久久久电影竹菊 | 欧美激情亚洲综合 | 丁香婷婷成人 | 午夜性福利| 国产亚洲婷婷免费 | 正在播放久久 | 伊人五月在线 | 99精品久久只有精品 | 最新国产视频 | 精品国产免费一区二区三区五区 | 国产麻豆视频在线观看 | 久久久综合色 | 国产小视频在线观看免费 | 中文字幕成人在线 | 亚洲欧美经典 | 国产精品亚洲综合久久 | av3级在线| 337p日本欧洲亚洲大胆裸体艺术 | 久久久久久久久黄色 | 麻豆视传媒官网免费观看 | 中文字幕 国产视频 | 亚洲六月丁香色婷婷综合久久 | 国产男女爽爽爽免费视频 | 亚洲精品在线观看视频 | 国产玖玖在线 | 欧美一区二区免费在线观看 | 国产精品99久久久久久大便 | 欧美一区二区三区激情视频 | 久久国产女人 | 亚洲激情中文 | 亚洲国产一区在线观看 | 日本黄色免费电影网站 | 日韩欧美在线综合网 | 国产精品久久久一区二区三区网站 | 免费成人短视频 | 国产日韩在线播放 | 欧美另类tv | 久久综合色天天久久综合图片 | 亚洲国产免费看 | 91视频在线免费 | av日韩在线网站 | 麻豆久久久| 天天射天天爱天天干 | 日韩欧美视频在线观看免费 | 天天插日日操 | 天天操天天射天天爱 | 超级碰碰碰碰 | 黄色成人在线观看 | 久久国产精品99久久久久 | 精品免费在线视频 | 五月天婷婷视频 | 国产裸体无遮挡 | 在线免费高清视频 | 免费观看av | 午夜久草 | 亚洲欧洲久久久 | 欧美激情精品 | 国产精品免费在线 | 国产成人a v电影 | 欧美一区二区三区激情视频 | 中文字幕在线人 | 在线精品观看国产 | 天天操天 | 98超碰在线 | a级片网站 | 综合网婷婷 | 欧美激情在线看 | 91久久精品一区二区二区 | 在线视频国产区 | 天海冀一区二区三区 | 久久久久9999亚洲精品 | 日本性xxx | 伊人中文网 | av电影在线免费观看 | 日韩在线免费不卡 | 色偷偷网站视频 | 中文字幕资源网 国产 | 免费成人在线视频网站 | 成人黄色电影在线播放 | 少妇精品久久久一区二区免费 | 日日干网| 日本黄色一级电影 | 91毛片视频| 亚洲五月婷| 欧美日韩高清一区二区三区 | 久久久久国产精品视频 | 欧美日韩国产一区二区三区在线观看 | 日韩精品欧美视频 | 天堂av在线7 | 日韩免费区 | 国产中文视频 | 国产一区在线精品 | 日日干夜夜骑 | 久草电影在线观看 | 国产一级大片免费看 | 色婷婷88av视频一二三区 | 婷五月天激情 | 日韩精品一区二区三区在线视频 | 91成人在线视频 | 伊人热| 91人人爽久久涩噜噜噜 | 91九色在线视频 | 99久久精品免费看 | 免费精品视频在线 | 又黄又爽又色无遮挡免费 | 日韩高清免费在线 | 伊人亚洲综合网 | 国产成人精品免高潮在线观看 | 中文字幕av最新更新 | 最新av免费在线观看 | 亚洲精品乱码久久久久久9色 | 又污又黄的网站 | 91桃色免费观看 | 国产伦精品一区二区三区无广告 | 色综合久久综合网 | 国产精品久久久亚洲 | 色婷婷播放 | 麻豆影视在线免费观看 | 91av视频免费观看 | 在线免费91| 国产精品九九九九九九 | 三级性生活视频 | 五月天久久综合 | 亚洲成人黄色在线观看 | 精品久久久成人 | 水蜜桃亚洲一二三四在线 | 天堂网在线视频 | 亚洲一区欧美激情 | 日韩av片无码一区二区不卡电影 | 中文字幕在线免费看线人 | 久久久精品免费观看 | 日韩精品久久一区二区三区 | 免费av网址在线观看 | 亚洲黄色网络 | 狠狠狠色丁香综合久久天下网 | 久久久网页 | 中文字幕免费高清在线观看 | 国产97视频 | 婷婷丁香在线视频 | 国产精品久久网站 | 天天做夜夜做 | 国产精品成人a免费观看 | 欧美精品在线观看免费 | 狠狠的干 | 午夜丁香网 | 韩国一区二区在线观看 | 久久99电影 | 久久精品系列 | 国产玖玖视频 | 国内外成人在线 | 亚洲首页 | 色播六月天 | 黄色三级网站 | 视频在线观看国产 | 摸bbb搡bbb搡bbbb| 欧美日韩精品综合 | 欧美日韩在线视频观看 | a黄色 | 黄色性av| 99视屏| 国产aa精品 | 中文不卡视频 | 国产精品高清在线观看 | 欧美久久久一区二区三区 | 激情久久伊人 | 黄色电影小说 | 久久婷婷五月综合色丁香 | 成人资源在线观看 | 亚洲永久字幕 | 中文字幕一区二区在线观看 | 日韩精品三区四区 | 在线高清av | 亚洲丁香日韩 | 免费观看一级特黄欧美大片 | 不卡视频在线看 | 欧美怡红院 | 日本中文字幕电影在线免费观看 | av在线影片| 国产一区二区三区视频在线 | 视频二区在线 | 久久精品观看 | 免费观看一级成人毛片 | 色久综合 | 91av在线播放视频 | 在线观看免费色 | 91人人在线| 色婷婷精品 | www亚洲国产 | 91精品国产99久久久久久红楼 | 精品久久久一区二区 | 欧美淫aaa免费观看 日韩激情免费视频 | 成人黄色小视频 | 一级黄色免费 | 国产精品毛片一区视频 | 丁香激情网 | 97超碰在线人人 | 中文字幕色婷婷在线视频 | 日韩欧美高清在线观看 | 右手影院亚洲欧美 | 青青河边草免费视频 | 久久不射电影院 | 狠狠干我 | 免费 在线 中文 日本 | 91中文字幕在线播放 | 最新日韩在线观看 | 国产午夜一级毛片 | 91精品久 | 成人三级av | 日韩免费| 国产又粗又猛又色又黄视频 | 免费a v视频 | 亚洲另类视频在线观看 | 粉嫩高清一区二区三区 | 婷婷婷国产在线视频 | 婷婷资源站 | 欧美一级特黄高清视频 | 91av视频在线播放 | 午夜影院日本 | 国产精品观看视频 | 91麻豆精品国产91久久久久 | 国产一区二区三区 在线 | 国产视频1区2区 | 日韩色视频在线观看 | 久色伊人| 91中文字幕在线观看 | 91经典在线| 91久久奴性调教 | 日韩在线观看高清 | 久久久久久久久久久久亚洲 | av免费片| 国产黄色片免费在线观看 | 午夜国产一区二区三区四区 | 欧美一区二区三区在线看 | 欧美精品久久久久 | 色欧美成人精品a∨在线观看 | 精品亚洲成人 | 精品uu | 五月婷婷激情综合 | 四季av综合网站 | 欧美专区亚洲专区 | 在线午夜 | 在线观看日本韩国电影 | 久精品视频在线 | 特级黄色片免费看 | 亚洲精品动漫在线 | 97av视频| 欧美成年黄网站色视频 | 99精品国产aⅴ | 国产精品麻豆三级一区视频 | 国产精品永久免费观看 | 日日干 天天干 | 国产精品黄色 | 欧美-第1页-屁屁影院 | 99久高清在线观看视频99精品热在线观看视频 | 亚洲国产偷 | 亚洲综合精品视频 | 精品国产免费人成在线观看 | 久久,天天综合 | 一区二区三区精品在线视频 | 久久成人高清 | 国产精品99久久久久的智能播放 | 亚洲欧美国产精品久久久久 | 国产一区二区三区免费视频 | 午夜黄色一级片 | 一区二区国产精品 | 久久精品免费 | 可以免费观看的av片 | 91精品毛片 | 六月婷婷久香在线视频 | 日韩高清不卡在线 | 色香蕉视频 | 超碰国产人人 | 国产在线精品一区二区三区 | 久久久免费观看完整版 | 久久国产一二区 | 日韩视频欧美视频 | 日韩在线资源 | 久久久久二区 | 97超碰色 | 日日草av | 国产成人高清 | 欧美一区二区伦理片 | 亚洲国产三级在线观看 | 中文字幕中文中文字幕 | 在线天堂中文www视软件 | 99久久久久久 | 少妇bbb| 手机在线看永久av片免费 | 黄网av在线 | 在线观看免费一级片 | 国产中文欧美日韩在线 | 在线观看国产高清视频 | 草免费视频 | 黄色大全在线观看 | 欧洲亚洲激情 | av免费观看网站 | 午夜视频免费在线观看 | 四虎在线免费观看 | 欧美国产日韩一区二区三区 | 午夜性生活 | 日韩最新中文字幕 | 91丨九色丨蝌蚪丨老版 | 日韩精品一区二区在线视频 | 91视频中文字幕 | 欧美狠狠色 | 免费在线观看91 | 五月婷婷一级片 | 狠狠狠色狠狠色综合 | 久久免费福利 | 国产精品一区二区三区在线 | 国产三级午夜理伦三级 | 午夜视频欧美 | 99在线精品视频 | 国产久草在线 | 91精品国 | 亚洲精品乱码久久久久 | www.91成人| 韩国av在线| 国产精品一区二区三区免费看 | 国内精品美女在线观看 | 日本中文不卡 | 免费在线黄 | 国产精品黄色av | 高清国产午夜精品久久久久久 | 精品色999 | 黄网站色视频免费观看 | 国产亚洲人成网站在线观看 | 综合成人在线 | 亚洲精品动漫在线 | 在线免费看片 | 日本精品一二区 | 欧美 日韩 视频 | 天天色天天综合 | 日韩av进入 | 成人久久久久 | 久久免费视频播放 | 亚州国产视频 | 久久成人国产精品免费软件 | 久久国产亚洲精品 | www.婷婷com| 欧美性视频网站 | 97精品国产一二三产区 | 国产日韩视频在线播放 | av经典在线| 不卡av在线播放 | www.婷婷com | 欧美国产日韩一区二区三区 | 国产精品mm | 亚洲国产精品久久久 | 国产福利一区二区三区在线观看 | 美女黄频在线观看 | 精品欧美一区二区三区久久久 | 日韩免费b | 久久人视频 | 激情欧美国产 | 婷婷在线色 | 91精品秘密在线观看 | 国产电影黄色av | 国产一二区免费视频 | 久草色在线观看 | 久久久久久免费视频 | 天天爽天天碰狠狠添 | 国产亚洲视频系列 | 亚洲综合精品视频 | 国产99亚洲 | 五月天久久综合 | 中文字幕av网站 | 久久精品电影 | bbbbb女女女女女bbbbb国产 | 国产精品久久在线观看 | 最新国产精品久久精品 | 国产成人精品午夜在线播放 | 日本精品视频在线播放 | 亚洲国产日韩一区 | 在线视频 你懂得 | 99九九热只有国产精品 | av网站播放 | 精品久久国产 | 99国产成+人+综合+亚洲 欧美 | 日韩电影在线观看中文字幕 | av免费电影网站 | 国产一二三四在线观看视频 | 中文字幕电影网 | 啪啪动态视频 | 亚洲精品美女 | 热热热热热色 | h视频在线看 | 久久免费大片 | 91色吧 | 国产成人久久精品 | 午夜av免费在线观看 | 亚洲精品www久久久 www国产精品com | 久久久久亚洲精品 | 伊人电影在线观看 | 天天射天天爽 | 中文字幕免费一区二区 | 亚洲精品国偷自产在线91正片 | 久久久久蜜桃 | 亚洲精品成人网 | 色综合久久88色综合天天免费 | 欧美日韩综合在线观看 | 国产一区二区三区免费观看视频 | 国产高清不卡一区二区三区 | 日韩在线视频观看免费 | 99热精品国产一区二区在线观看 | 在线国产一区二区 | 一级免费av | 色婷婷成人网 | 99热精品国产一区二区在线观看 | 欧美日韩高清在线 | 国产在线播放一区二区三区 | 亚洲综合成人婷婷小说 | 国产成人精品一区一区一区 | 在线国产片 | 国产a级片免费观看 | 国产成人一区二区三区久久精品 | 国产黄色美女 | 国产中文字幕亚洲 | 在线观看激情av | 伊人热| 99精品热| 韩日精品在线 | 激情丁香5月 | 91久久人澡人人添人人爽欧美 | 日韩字幕在线观看 | 日本精品一区二区三区在线观看 | 中文字幕一区在线 | 性色av免费观看 | 久草在线电影网 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 中文字幕亚洲综合久久五月天色无吗'' | 人人草人 | 黄色官网在线观看 | 久久精品中文视频 | 国产精品免费视频网站 | 国产精品免费久久久久影院仙踪林 | 久草视频免费在线播放 | 午夜视频免费在线观看 | 就要干b | 911国产精品 | 亚洲电影自拍 | 碰超人人| 久久999精品 | 欧美一区二区在线刺激视频 | 丰满少妇在线观看资源站 | 一区二区三区免费在线观看 | 久久国产精品免费视频 | 国产精品国产精品 | www.久久免费视频 | 日韩精品中文字幕在线播放 | 国产精品久久久久久久久久白浆 | 欧美男男激情videos | 国产麻豆精品传媒av国产下载 | 欧美日韩在线播放一区 | 午夜精品久久久久久久99水蜜桃 | 中文字幕一区二区在线观看 | 一区精品久久 | 久久成人人人人精品欧 | 日韩在线观看视频一区二区三区 | 成人av免费在线观看 | 国产在线播放不卡 | 日韩美女黄色片 | 精品久久久999 | 97理论电影 | 一区二区亚洲精品 | 免费在线播放 | 伊人宗合| 中文字幕在线视频一区二区 | 国产精品久久久久久久7电影 | 一区二区欧美在线观看 | 一区中文字幕在线观看 | 中文字幕在线观看视频网站 | 人人插人人爱 | 黄色毛片视频 | 国产女教师精品久久av | 久视频在线 | 久久久久久久久久久久av | 在线视频国产区 | 久久高清精品 | 亚洲精品乱码久久久一二三 | 成人黄色片在线播放 | 91视频麻豆视频 | 91丨九色丨高潮丰满 | 狠狠色狠狠色合久久伊人 | 综合久久网站 | 成人免费在线电影 | 国产一区二区在线播放 | 日韩午夜在线播放 | 中文字幕在线观看播放 | 亚洲天堂视频在线 | 99热这里精品 | 婷婷色在线观看 | 国产精品久久久久影视 | 国产精品丝袜 | 成人一级影视 | 国产欧美综合在线观看 | 天干啦夜天干天干在线线 | 综合国产在线观看 | 久久综合九色综合久久久精品综合 | 国产大陆亚洲精品国产 | 91黄视频在线 | 日韩黄视频 | 激情电影影院 | 黄色免费观看 | 久久激情视频网 | 国产福利91精品一区二区三区 | 成年人在线 | 久久人人看 | 成人毛片在线观看 | 久久在线 | 亚洲狠狠操 | 国产日韩高清在线 | 国产精品久久一区二区三区, | 日韩,精品电影 | 午夜久久久久久久久久久 | 免费成人在线观看 | 在线精品视频免费播放 | 国产成人三级在线 | 国产美女久久久 | 黄色大片av | 免费看国产一级片 | 国产自产高清不卡 | 国产精品九九九 | 在线视频观看国产 | 久久伦理电影 | 亚洲精品视频久久 | 免费看色网站 | 日本在线观看中文字幕 | 久久97视频| 在线观看中文字幕dvd播放 | 亚洲手机天堂 | 国产精品毛片久久蜜 | 免费视频一级片 | 91成人看片 | 91精品成人 | 91av在线免费播放 | 91精品国产一区 | 成年人国产视频 | 手机av在线免费观看 | 99精品久久久久久久久久综合 | 久久公开免费视频 | 中文字幕电影一区 | 精品久久久久久久久久久久久久久久 | 久久久人| 中文字幕专区高清在线观看 | 色诱亚洲精品久久久久久 | 色妞久久福利网 | 国产亚洲精品日韩在线tv黄 | 久久久www成人免费精品张筱雨 | www.99在线观看| 日日操网| 国产免费大片 | 成人免费视频视频在线观看 免费 | 337p欧美 | 国产高清av免费在线观看 | 成人观看视频 | 久久久久一区二区三区四区 | av在线亚洲天堂 | 日日日日 | 九九久久影视 | 色综合天天做天天爱 | 久久精品网站视频 | 国产一区二区不卡在线 | 玖玖视频国产 | 999久久久欧美日韩黑人 | 久久精品资源 | 日韩影视在线观看 | 久久99视频免费观看 | 在线国产能看的 | 中文字幕在线日 | 伊人伊成久久人综合网站 | 人人舔人人 | 一区在线播放 | 国产日产av | 久久er99热精品一区二区 | 国产在线色视频 | 国产免费亚洲 | 在线视频观看国产 | 99九九视频 | 九月婷婷综合网 | 成年性视频 | 久久精品二区 | 97日日碰人人模人人澡分享吧 | 99久久国产免费,99久久国产免费大片 | 久久久国际精品 |