# 网络编程
# arp协议 :
# 1.这是一个通过ip找mac地址的协议
# 2.由于有了socket,用户在使用网络的时候,只需要关心对方用户的ip地址就可以了
# 3.如果用户即将和这个ip进行通信,那么还需要知道它的mac地址
# 4.这个时候就需要由你的机器发起一个arp请求
# 5.由交换机进行广播
# 6.对应的机器会回应这个arp请求
# 7.通过交换机单播发给你的机器 # tcp协议和udp协议的特点?
# 1.tcp
# 面向连接的可靠的流式传输 适合传输比较大的文件,
# 对稳定性要求比较高的
# 扩展的说 为什么 可靠?
# 2.udp
# 无连接的 快速 但不可靠
# 适合传输对效率要求比较高的短消息 # 你了解4层交换机么?
# 了解,4层就是osi协议中的第4层,传输层
# 这一层封装的是端口的信息和tcp协议以及udp协议
# 所以4层交换机就是可以直接识别传输层协议和端口信息的机器
# 能够实现信息输出直接到端口 # 笔试题
# osi五层协议
# 应用层 http https ftp smtp
# socket
# 传输层 tcp/udp协议 端口 4层交换机\4层路由器
# 网络层 ipv4/ipv6协议 ip 路由器\三层交换机
# 数据链路层 arp协议 mac地址 网卡\交换机
# 物理层 网线 # 以下哪些协议不属于数据链路层?
# 以下哪些硬件设备是属于网络层的? # socket
# 什么是socket?
# 网络协议的大接口,帮助我们完成网络传输过程中的osi4层以及一下信息的封装
# tcp协议 : 要先建立连接 占线 用socketserver解决
# udp协议: 不需要建立连接 且可同时和多个客户端进行交互 # socketserver 实现了并发的socket tcp server # 黏包现象 :
# 黏包现象怎么产生的
# 首先,我们发出的信息不是立即通过网络传送到另一端
# 而是我们发到操作系统的缓存中,
# tcp协议首先流式传输无边界,第二是可靠所以每一条数据都有回执
# 那么为了节省网络上延迟的时间
# 连续发送出的多个短信息就会黏在一起
# 由发送端的缓存发送除去,所以接收到的就是黏在一起的数据了 # 发送端发送的消息也不是直接发送到对面的应用中
# 而是发到了对方操作系统的缓存中
# 如果连续发送的数据在对方的缓存中没有被及时取走
# 那么也会发生黏包现象 # 如何解决黏包
# 自定义协议
# 先发送即将发送数据的长度,然后再发送数据
# 先接收数据的长度,再根据接收的长度接收数据
# 用到了struct模块,来控制第一次发送数据长度的这条信息的长度 # ftp
# 功能复杂
# 是一个相对完善的大功能
# 并发编程 6-7day
# 操作系统基础理论 初识进程 day1
# 进程 day2 day3
# 线程 day4 day5
# 协程 day6 + 拓展的知识点
# IO模型(待定) # 操作系统的基础
# 操作系统的进化论
# 认识进程的概念
# 进程的状态
# 什么是并行什么是并发
# 阻塞和非阻塞的概念
# 同步和异步的概念
# 初识python中的进程
# 什么是io操作
# i input 输入 相对内存 进入内存
# read
# recv
# input 人脑子里的内容直接通过键盘输入到内存中
# load
# o output 输出 相对内存 从内存出去
# write
# send
# dump # 文件操作就是io
# 网络操作就是io # 文件在硬盘上 程序在运行的时候 是在内存中存储数据
# 如果文件中的内容 -输入的过程-> 内存中
# str -输出的过程-> 写到文件中 # 网络操作
#send 输出
#recv 输入 # 多道操作系统
# 提高了cpu的利用率
# 第一次出现了一个概念 : 任务状态的保存
# 数据隔离的概念(由于同时在执行的多个程序之间的数据不能混为一谈) # 单处理机系统中多道程序运行时的特点:
# (1)多道:计算机内存中同时存放几道相互独立的程序;
# (2)宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕;
# (3)微观上串行:实际上,各道程序轮流地用CPU,并交替运行。 # 计算机 - 多道操作系统
# 研究生 : 5分钟 并且没有IO
# 老教授 : 24h 并且没有IO # 时间短的走 : 短作业优先算法 # 分时操作系统 把时间分成片 # 实时操作系统 # 大型的任务 高并发
# 分布式系统 帮助你分发任务 拆解任务
# celery - 分布式 # 所有的程序 - 任务
# 所有对任务 - 进程
# 什么是进程 ? 进行中的程序
# 进程 :
# 是计算机中资源分配的最小单位
# 并且 进程与进程之间的数据是隔离的 # 进程的三状态图
# 就绪 阻塞 运行 # 同步
# 有几件事情 先做一件,做完一件再做一件
# 异步
# 有几件事情 同时完成
# 阻塞 blocking
# input
# accept
# recv
# sleep
# recvfrom
# 非阻塞 所有不阻塞的程序
# import socket
# sk = socket.socket()
# sk.setblocking(False)
# sk.bind(('127.0.0.1',9000))
# sk.listen()
# while True:
# try:
# conn,addr = sk.accept()
# break
# except BlockingIOError:
# print('没人连我')
# conn.recv # 四个词不是一回事儿
# 同步和异步是一对反义词
# 阻塞和非阻塞是一对反义词
# 同步阻塞
# 一件事儿一件事儿的做
# 中间还要被阻塞
# 同步非阻塞 : 费力不讨好
# 一件事儿一件事儿的做
# 但是不阻塞
# 异步阻塞
# 同时进行的
# 每一件事儿都会遇到阻塞事件
# 异步非阻塞
# 几个事情同时进行
# 每一件事都不阻塞
# import os,time

# print(os.getpid(),os.getppid())
# get pid process id 获取当前进程号
# get ppid parent process id 获取当前父进程号
# time.sleep(20)
# print(os.getpid()) # 子进程和父进程之间的关系
# pycharm启动了py文件
# py文件就是子进程
# pycharm就是父进程

开启子进程

# import multiprocessing  # 这是个包
import os
from multiprocessing import Process def son_process():
'''这个函数中的代码是在子进程中执行的'''
print('执行我啦',os.getpid(),os.getppid()) if __name__ == '__main__':
# son_process的外面是一个主进程
print('1 -->',os.getpid())
p = Process(target=son_process)
p.start()

day38 Pyhton 并发编程的更多相关文章

  1. day41 Pyhton 并发编程04

    内容回顾 socket 最底层的网络通信 所有的网络通信都是基于socket     进程 什么是进程? 是操作系统的发展过程中,为了提高cpu的利用率,在操作系统同时运行多个程序的时候,为了数据的安 ...

  2. day43 Pyhton 并发编程06

    一.内容回顾 线程 锁 为什么有了GIL之后还需要锁 多个线程同时操作全局变量还需要锁 当出现'非原子性操作',例如+= -= *= /= l.append(l) 原子性操作 a += 1  a= a ...

  3. day42 Pyhton 并发编程05

    一.内容回顾 # 线程 # 正常的编程界: # 进程 # 计算机中最小的资源分配单位 # 数据隔离 # 进程可以独立存在 # 创建与销毁 还有切换 都慢 给操作系统压力大 # 线程 # 计算机中能被C ...

  4. day40 Pyhton 并发编程03

    一.内容回顾 进程是计算机中最小的资源分配单位 进程与进程之间数据隔离,执行过程异步 为什么会出现进程的概念? 为了合理利用cpu,提高用户体验 多个进程是可以同时利用多个cpu的,可以实现并行的效果 ...

  5. day39 Pyhton 并发编程02 后

    一.开启子进程的另一种方式 import os from multiprocessing import Process class MyProcess(Process): def __init__(s ...

  6. day39 Pyhton 并发编程02

    一.内容回顾 并发和并行的区别 并发 宏观上是在同时运行的 微观上是一个一个顺序执行 同一时刻只有一个cpu在工作 并行 微观上就是同时执行的 同一时刻不止有一个cpu在工作 什么是进程 一个运行中的 ...

  7. [ 高并发]Java高并发编程系列第二篇--线程同步

    高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...

  8. 伪共享(false sharing),并发编程无声的性能杀手

    在并发编程过程中,我们大部分的焦点都放在如何控制共享变量的访问控制上(代码层面),但是很少人会关注系统硬件及 JVM 底层相关的影响因素.前段时间学习了一个牛X的高性能异步处理框架 Disruptor ...

  9. 【Java并发编程实战】----- AQS(四):CLH同步队列

    在[Java并发编程实战]-–"J.U.C":CLH队列锁提过,AQS里面的CLH队列是CLH同步锁的一种变形.其主要从两方面进行了改造:节点的结构与节点等待机制.在结构上引入了头 ...

随机推荐

  1. SpringBoot favicon.ico网站图标

    1.在application.properties下添加spring.mvc.favicon.enabled=false 默认true开启 2.关闭后,需要在src/main/resources/st ...

  2. Nginx(二): worker 进程处理逻辑-流程框架

    Nginx 启动起来之后,会有几个进程运行:1. master 进程接收用户命令并做出响应; 2. worker 进程负责处理各网络事件,并同时接收来自master的处理协调命令: master 主要 ...

  3. Java-Collection和Map

    创建博客的目的主要帮助自己记忆和复习日常学到和用到的知识:或有纰漏请大家斧正,非常感谢! 之前面试,被问过一个问题:List和Set的区别. 主要区别很明显了,两者都是数组形式存在的,继承了Colle ...

  4. nmap端口扫描工具下载和安装使用

    1.下载地址 https://nmap.org/download.html 2.下载之后进行安装 选择I Agree 后,建议全选,特别是zenmap,这个是图形化界面,不喜欢命令行格式的可以用zen ...

  5. oracle之三rman 备份

    rman 备份 7.1 归档方式下rman备份常用语法: 7.1.1 backup 备份 1)备份全库:1.1 RMAN> backup database format='/u01/myrman ...

  6. springboot、Thymeleaf、国际化的简单使用

    1.项目体系结构 (1)知识体系 springboot:省去了很多繁琐的配置,如:视图解析器.前端控制器等 thymeleaf:获取controller数据逼能够进行展示 集合:用于存储数据,此练习没 ...

  7. Spark Driver Program剖析

    SparkContext是通往Spark集群的唯一入口,是整个Application运行调度的核心. 一.Spark Driver Program Spark Driver Program(以下简称D ...

  8. 永远不要在代码中使用“User”这个单词

    ​ 当你意识到你在项目开始时做的轻量.简单的设想竟然完全错了时,你已经用了六个月的时间投入到这个项目上.现在你需要解决这些问题,才能让这个系统继续运行下去,你发现你用在这个项目上的精力远远超出了你的预 ...

  9. Asp.Net Core SignalR 系列博客

    系列 SignalR+Vue SignalR+Vue 服务端向客户端发送信息 SignalR+Vue+Log4net 实时日志推送 待定...... 源码地址:https://github.com/Q ...

  10. NLP常见任务

    借助BERT论文, 梳理下自然语言处理当前常见的任务. NLP任务 根据判断主题的级别, 将所有的NLP任务分为两种类型: token-level task: token级别的任务. 如完形填空(Cl ...