Java教程

网络编程与并发编程

本文主要是介绍网络编程与并发编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

网络编程总结篇

# 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()
这篇关于网络编程与并发编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!