執行緒,正規表示式

2021-08-16 05:37:28 字數 3388 閱讀 4167

執行緒同步

同時對資料進行修改防止併發

鎖使多執行緒任務更加安全

condition:上鎖(acquire())等待(wait())解鎖(release())喚醒(notify(),notify_all())

創鍵鎖:lock=threading.lock()

threading.condition(lock=lock)

import threading

import time

lock=threading.lock()

cond=threading.condition(lock=lock)

class thread1(threading.thread):

def run(self):

for i in range(1,11):

if i==3:

cond.acquire()

cond.wait()

cond.release()

print(i)

time.sleep(1)

class thread2(threading.thread):

def run(self):

for i in range(30,19,-1):

print(i)

time.sleep(1)

cond.acquire()

cond.notify()

cond.release()

t1=thread1()

t2=thread2()

t1.start()

t2.start()

生產者和消費者模式

吃貨與夥伕

import threading

import time

list=

lock=threading.lock()

huofucon=threading.condition(lock=lock)

lock2=threading.lock()

chihuocon=threading.condition(lock=lock2)

class huofu(threading.thread):

def run(self):

while true:

chihuocon.acquire()

for i in range(1,11):

print("夥伕生產第個饅頭".format(i))

time.sleep(1)

#等待huofucon.acquire()

chihuocon.notify_all()

chihuocon.release()

huofucon.wait()

huofucon.release()

mantou=none

class chihuo(threading.thread):

def __init__(self,name):

threading.thread.__init__(self)

self.name=name

def run(self):

while true:

chihuocon.acquire()

if len(list)==0:

huofucon.acquire()

huofucon.notify()

huofucon.release()

chihuocon.wait()

chihuocon.release()

chihuocon.acquire()

if len(list)>0:

mantou=list.pop()

print("在吃第個饅頭".format(threading.current_thread().name,mantou))

time.sleep(1)

chihuocon.release()

huofu=huofu()

chihuo1=chihuo('吃貨1')

chihuo2=chihuo('吃貨2')

chihuo3=chihuo('吃貨3')

huofu.start()

chihuo1.start()

chihuo2.start()

chihuo3.start()

正規表示式

re.m    多行匹配,影響 ^ 和 $

re.i 使匹配對大小寫不敏感

#match

import re

print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配 返回0 3

print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配 返回none

line = "cats are smarter than dogs"

matchobj = re.match(r'(.*) are (.*?) .*', line, re.m | re.i)

if matchobj:

print("matchobj.group() : ", matchobj.group())

print("matchobj.group(1) : ", matchobj.group(1))

print("matchobj.group(2) : ", matchobj.group(2))

else:

print("no match!!")

#search

import re

print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配

print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配

import re

line = "cats are smarter than dogs";

searchobj = re.search( r'(.*) are (.*?) .*', line, re.m|re.i)

if searchobj:

print ("searchobj.group() : ", searchobj.group())

print ("searchobj.group(1) : ", searchobj.group(1))

print ("searchobj.group(2) : ", searchobj.group(2))

else:

print ("nothing found!!")

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...