day19多線程

import re

"""
正則表達(dá)式:
1.正則符號
.  
\w
\s
\d 
\b
^
$
\B
\W
\S
\D
[ash] [\dabc]  [a-z1-9]  [^a-z]  
*,+,?,{N}, {M,N}, {M,}, {,N}   --  貪婪
*?,+?,??,{M,N}?, {M,}?, {,N}?   -- 非貪婪 
正則1|正則2
()

2.re模塊
完全匹配: re.fullmatch()
匹配字符串開頭: re.match()
搜索: re.search()
查找: re.findall() 、re.finditer()
分割: re.split()
替換: re.sub()
"""

import socket

"""
1.什么是socket
socket又叫套接字, 指的是網(wǎng)絡(luò)通信的兩端,分別是服務(wù)器和客戶端
socket編程指的就是通過代碼實(shí)現(xiàn)客戶端和服務(wù)器之間的通信

2.服務(wù)器的實(shí)現(xiàn)
"""
# 1.創(chuàng)建套接字對象
"""
family: ip類型, AF_INET -> ipv4,  AF_INET6 -> ipv6 
type: 傳輸協(xié)議的類型, SOCK_STREAM -> TCP,   SOCK_DGRAM -> UDP
"""
server = socket.socket()

# 2.綁定IP地址和端口
"""
ip用來區(qū)分互聯(lián)網(wǎng)上設(shè)備
端口是用來區(qū)分一臺計(jì)算上的不同的服務(wù)(應(yīng)用),值是0-65535,其中0-1024是著名端口。其他的隨便選


bind((ip地址,端口號))
"""
server.bind(('10.7.190.127', 8081))

# 3.啟動(dòng)服務(wù)器(監(jiān)聽請求)
"""
listen(數(shù)量)    -  這兒的數(shù)量指的是一次性能夠處理的最大請求數(shù)
"""
server.listen(255)


# 4.讓服務(wù)器一直處于運(yùn)行狀態(tài)
while True:
    print('開始監(jiān)聽....')
    # 5.等待客戶端的請求
    # 程序運(yùn)行到這個(gè)地方,會停下來,等到有客戶端來連接服務(wù)器,才會接著往后執(zhí)行
    connect, addr = server.accept()
    print(connect, addr)

    # 6.發(fā)送消息
    """
    send(數(shù)據(jù))     -  發(fā)送數(shù)據(jù),數(shù)據(jù)是二進(jìn)制數(shù)據(jù)
    """
    message = input('>>>')
    connect.send(message.encode(encoding='utf-8'))

    # 7.接收消息
    """
    recv(字節(jié)數(shù))   - 接收數(shù)據(jù),并且指定一次性接收的數(shù)據(jù)的大小的最大值;返回接收到的二進(jìn)制數(shù)據(jù)
    """
    # 程序運(yùn)行到這個(gè)地方會停下來,直到客戶端給服務(wù)器發(fā)送消息,才會接著執(zhí)行
    data = connect.recv(1024)
    print('<<<:')
    print(data.decode(encoding='utf-8'))

    # 8.關(guān)閉連接
    connect.close()

t1 = threading.Thread(target=download, args=('大國崛起',))
t2 = threading.Thread(target=download, args=('霸王別姬',))

2.讓線程開始執(zhí)行任務(wù)

"""
線程對象.start() - 開始執(zhí)行子線程中的任務(wù)
"""
t1.start()
t2.start()
download('變形金剛')
print('=======')

某個(gè)線程出現(xiàn)異常,是線程直接結(jié)束;進(jìn)程不一定結(jié)束,所有的線程都結(jié)束,進(jìn)程才會結(jié)束

print([1, 2][10])
print('+++++++++++')

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.耗時(shí)操作一個(gè)進(jìn)程默認(rèn)有一個(gè)線程,這個(gè)線程叫主線程。默認(rèn)情況下,所有的代碼都是在主線程中執(zhí)行的 time.sle...
    學(xué)python的鐵頭娃閱讀 194評論 0 0
  • 線程 操作系統(tǒng)線程理論 線程概念的引入背景 進(jìn)程 之前我們已經(jīng)了解了操作系統(tǒng)中進(jìn)程的概念,程序并不能單獨(dú)運(yùn)行,只有...
    go以恒閱讀 1,797評論 0 6
  • 一文讀懂Python多線程 1、線程和進(jìn)程 計(jì)算機(jī)的核心是CPU,它承擔(dān)了所有的計(jì)算任務(wù)。它就像一座工廠,時(shí)刻在運(yùn)...
    星丶雲(yún)閱讀 1,596評論 0 4
  • 環(huán)境 xubuntu anaconda pycharm python https://www.cnblogs.co...
    Ericoool閱讀 2,055評論 0 0
  • 一、線程介紹 1.1、線程,有時(shí)被稱為輕量進(jìn)程(Lightweight Process,LWP),是程序執(zhí)行流的最...
    IIronMan閱讀 1,439評論 0 2

友情鏈接更多精彩內(nèi)容