欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网络

程序员文章站 2022-04-29 16:46:01
...

进程:
多任务:同一时间内执行多个任务。
单任务:逐一完成。

并发和并行
并行:同时执行
并发:任务的交替执行

进程和程序
程序:静态概念,已经编写完成的代码
进程:运行起来的代码块,除了代码,还有系统分配的资源

单线程:单线程测试,默认情况下,程序启动只有一个线程,这个线程就是主线程,线程是CPU调度的基本单位。
实例:

def coding():
    for i in range(5):
        print('敲代码')


def smoking():
    for i in range(5):
        print('正在抽烟')


if __name__ == '__main__':
    coding()
    smoking()

多线程实例:

import threading
def coding():
    for i in range(5):
        print('敲代码',i)


def smoking():
    for i in range(5):
        print('正在抽烟',i)

if __name__ == '__main__':
    print('刚进入程序',threading.enumerate())
    #这个函数显示的是活动的线程个数


    print(threading.current_thread())

    #计算活动的线程的个数
    print(threading.active_count())

    coding_thread=threading.Thread(target=coding)
    smoking_thread=threading.Thread(target=smoking)
    print(coding_thread)
    print(smoking_thread)
    print('创建线程之后',threading.enumerate())
    #开启线程
    coding_thread.start()
    smoking_thread.start()
    print('启动之后',threading.enumerate())

threading:写多线程模块
target:这个参数指定的是线程需要执行的函数名,不能加()。
只有在调用start之后,线程才活动。
threading.enumerate:显示下活动的线程个数
计算活动线程个数:threading.active_count()
展示所有的活动线程:threading.current_thread()

线程的执行是无序的,是操作系统来决定的

守护主线程:如果主线程退出,子线程直接销毁,使用setDaemon()
设置守护线程必须在start()之前

import threading

def smoking():
    for i in range(5):
        print('正在抽烟',i)



if __name__ == '__main__':

    smoking_thread=threading.Thread(target=smoking)

    smoking_thread.setDaemon(True)

    smoking_thread.start()

    print('主线程结束')

    exit()

自定义线程
start()方法内部调用的是run()方法

TCP/IP协议
IP地址:标记网络中唯一的一台设备
地址分类:ABCDE 常用C
本地回环地址:127.0.0.1(localhost)
个数:2的16次方
端口:是数据发出或者接收的入口
著名端口(0-1023)(不允许使用)
端口的目的:通过端口号找到对应的进程,完成数据的通信

UDP客户端使用:
步骤:
1.创建UDP的客户端,创建套接字
第一个参数表示的是地址类型,用于Internet之间的进程 通信
第二个参数表示的是传输协议udp
A=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
2.使用套接字进行收发数据
A.sendto(‘数据内容’.encode(‘utf-8’),(‘地址’,8080))
3.套接字关闭
A.close()

注意点:发送的数据需要处理字节流文件,windows使用gbk,ubuntu使用utf-8