本文主要是介绍网络编程与并发编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
网络编程总结篇
# OSI七层协议
1.应用层>>>HTTP协议,自定义协议,FTP协议
2.表示层
3.会话层
4.传输层>>>PORT协议(端口协议),TCP协议,UDP协议
5.网络层>>>ipv4/ipv6
6.数据链路层
7.物理连接层
# TCP与UDP
1.他们都属于传输层
2.TCP协议
流式协议,可靠协议,基于TCP协议进行数据交互之前需要做一系列复杂操作,
建立双向通道:第一次握手客户端给服务端发送请求建立客户端与服务端的请求,第二次服务端可以发出同意并请求建立一个服务端到客户端的通道,第三次握手就是客户端同意请求
断开链接:
四次握手客户端请求断开,服务端同样发出一个同意指令,然后服务端也会申请断开通道,客户端收到请求也会同意发出一个请求
3.UDP协议
丢包协议,不可靠协议
它主要就是朝一个地址发送数据如果能接收就接受,他也不会管那么多,但我们可以基于UDP协议的基础之上做很多额外的扩展来保证数据的安全
# CPU调度法则
1.时间片轮转法:先公平的将CPU分给每个人执行
2.多级反馈队列:根据作业长短的不同再合理分配CPU执行时间
# 并发与并行
并发:看上去同时执行的任务
并行:本质就是同时在执行
# 同步与异步
同步:提交完任务之后原地等待任务的返回结果 期间不做任何事情
异步:提交完任务之后不愿地等待任务的结果 直接去做其他事情 有结果自动提醒
# 阻塞与非阻塞
就绪态:程序之进入运行态之前肯定要处于就绪态
运行态:程序被CPU执行着
阻塞态:程序执行过程中有IO操作
# 进程
from multiprocessing import Process
import time
class MyProcess(Process):
def __init__(self, username):
self.username = username
super().__init__()
def run(self):
print('你好啊 小姐姐',self.username)
time.sleep(3)
print('get out!!!',self.username)
# 线程
if __name__ == '__main__':
p = MyProcess('tony')
p.start()
from threading import Thread
import time
class MyThread(Thread):
def __init__(self, username):
super().__init__()
self.username = username
def run(self):
print(f'{self.username} jason is running')
time.sleep(3)
print(f'{self.username} is over')
t = MyThread('jasonNB')
t.start()
这篇关于网络编程与并发编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!