Twenty-six 验证合法性_进程_同步异步

 

1、验证用户合法性

# serve
def auth(conn):
    secret_key = b'alexsb'  # 密钥,自带,别人无法得知
    rand_b = os.urandom(32)     # 创建随机码
    conn.send(rand_b)   # 发送
    obj = hmac.new(secret_key, rand_b)  # 解析密钥
    rest1 = obj.digest()    # 解析得到的
    ret2 = conn.recv(1024)  # 接收
    cmp_res = hmac.compare_digest(rest1, ret2)  # 比较是否相同
    return cmp_res
# client
import hmac
import socket
def auth(sk):
    secret_key = b'alexsb'
    rand_b = sk.recv(32)
    obj = hmac.new(secret_key, rand_b)
    res2 = obj.digest()
    sk.send(res2)

2、进度条

def processBar(num, total):
    rate = num / total  #越来越大的值/总值
    rate_num = int(rate * 100)
    if rate_num == 100:
        r = '\r%s>%d%%\n' % ('=' * rate_num, rate_num,)
    else:
        r = '\r%s>%d%%' % ('=' * rate_num, rate_num,)
    sys.stdout.write(r)
    sys.stdout

3、进程的三大状态:就绪、运行、阻塞 

    计算机中最小的资源分配单位

    程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。

    而进程是程序在处理机上的一次执行过程,它是一个动态的概念。

    程序可以作为一种软件资料长期存在,而进程是有一定生命期的。 程序是永久的,进程是暂时的。

4、并发和并行

    并行 : 并行是指两者同时执行(资源够用,比如三个线程,四核的CPU ) 

    并发:是指资源有限的情况下,两者交替轮流使用资源,一般情况下无法感知到是交替使用的

5、同步异步和阻塞非阻塞

    同步异步更关心的是消息通信机制

    同步:有相关的依赖任务的时,只能等待该任务完成才能执行下一个任务,发出调用,没得到结果则调用不返回

    异步:不需要等待被依赖任务的完成,也执行依赖任务,发出调用后直接返回调用,被调用者通过回调函数、状态等通知调用者

    阻塞非阻塞关注的是程序在等待调用的结果(消息,返回值)时的状态

    阻塞:调用结果返回之前,当前进程被“挂起”

    非阻塞:调用者结果返回之前,该调用不会阻塞进程

posted @ 2019-01-24 20:56  pythonernoob  阅读(118)  评论(0)    收藏  举报