# 网络编程
# 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. IFile、File与实体转换

    /** * 根据物理实体文件在开发工程中创建实体文件 */ @Override public void getEntityFilesByErFile(IFile erfile, IFolder ent ...

  2. Java审计之XSS篇

    Java审计之XSS篇 0x00 前言 继续 学习一波Java审计的XSS漏洞的产生过程和代码. 0x01 Java 中XSS漏洞代码分析 xss原理 xss产生过程: 后台未对用户输入进行检查或过滤 ...

  3. 血的教训!千万别在生产使用这些 redis 指令

    哎,最近小黑哥又双叒叕犯事了. 事情是这样的,前一段时间小黑哥公司生产交易偶发报错,一番排查下来最终原因是因为 Redis 命令执行超时. 可是令人不解的是,生产交易仅仅使用 Redis set 这个 ...

  4. 掌握Rabbitmq几个重要概念,从一条消息说起

    RabbitMQ 是功能强大的开源消息代理.根据官网称:也是使用量最广泛的消息队列.就像他的口号“Messaging that just works”,开箱即用使用简单,支持多种消息传输协议(AMQP ...

  5. 使用Scrcpy实现电脑控制安卓手机

    很多时候我们想要在电脑上使用一些手机软件,使用模拟器当然是一种选择,但是这些模拟器要不然不免费,要不然广告多不放心.Scrcpy是一个开源免费的软件,通过abd命令实现了安卓手机投屏和控制功能,并且支 ...

  6. Java审计之命令执行篇

    Java审计之命令执行篇 0x00 前言 在Java中能执行命令的类其实并不多,不像php那样各种的命令执行函数.在Java中目前所知的能执行命令的类也就两种,分别是Runtime和 ProcessB ...

  7. vsCode 搭建Java开发环境

    1.安装扩展 Java Extension Pack Spring Boot Extension Pack 2.配置Maven 打开设置 搜索maven 找到并打开  在 settings.json ...

  8. 阿里内部推出Spring响应式微服务Boot2Cloud文档

    今天要给大家推荐的是Spring响应式微服务SpringBoot2+Spring5+SpringCloud实战的内容,将从目录.主要内容和面向的读者三部分给大家介绍,希望大家能够喜欢!!!(本文整理自 ...

  9. 虚拟机CentOS开机黑屏解决方案

    默认配置 错误: 1.直接就是黑屏,连杠杠都没有 2.centos系统关不掉 3.关闭vmware提示:虚拟机XXX繁忙 解决方案一: 1.以管理员身份运行cmd控制台程序 2.在cmd窗口中输入ne ...

  10. 微服务实战系列(八)-网关springcloud gateway自定义规则

    1. 场景描述 先说明下项目中使用的网关是:springcloud gateway, 因需要给各个网关服务系统提供自定义配置路由规则,实时生效,不用重启网关(重启风险大),目前已实现:动态加载自定义路 ...