随笔分类 - Python全栈开发新版
摘要:【一】GIL全局解释器锁介绍 【1】官方解释 In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecod
阅读全文
摘要:【一】问题 所有子线程都会进行阻塞操作,导致最后的改变只是改了一次 from threading import Thread import time money = 100 def task(): global money # 模拟获取到车票信息 temp = money # 模拟网络延迟 time
阅读全文
摘要:【1】主线程死亡,子线程未死亡 主线程结束运行后不会马上结束,而是等待其他非守护子线程结束之后才会结束 如果主线程死亡就代表者主进程也死亡,随之而来的是所有子线程的死亡 from threading import Thread import time def task(name): print(f'
阅读全文
摘要:【一】threading模块介绍 multiprocess模块的完全模仿了threading模块的接口 二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading
阅读全文
摘要:【一】什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程 一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要电源,电源就相当于cpu 所
阅读全文
摘要:【一】引入 借助于消息队列,进程可以将消息放入队列中,然后由另一个进程从队列中取出。 这种通信方式是非阻塞的,即发送进程不需要等待接收进程的响应即可继续执行。 multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 进程间通信(IPC)方式二:管道(不推荐使用,了解
阅读全文
摘要:【一】什么是进程同步(互斥锁) 互斥锁(Mutex)是一种用于多线程编程中控制对共享资源访问的机制。 其作用是保证在同一时刻只有一个线程在访问共享资源,从而避免多个线程同时读写数据造成的问题。 互斥锁的基本原理是在对共享资源进行访问前加锁,使得其他线程无法访问该资源,当访问完成后再解锁,使得其他线程
阅读全文
摘要:【一】引入 【1】什么是进程间通信(Inter-Process Communication, IPC) 进程间通信(Inter-Process Communication, IPC)是指两个或多个进程之间进行信息交换的过程。 它是一种计算机编程技术,用于在不同进程之间共享数据和资源。 【2】如何实现
阅读全文
摘要:【一】什么是守护进程 守护进程 (daemon) 是在计算机系统启动时就已经运行,并且一直在后台运行的一类特殊进程。 它们通常不与用户直接交互,也不接受标准输入和输出,而是在后台执行某种任务或提供某种服务。 守护进程往往是由系统管理员手动启动的,它们可以在系统启动时自动启动,一直运行在后台,直到系统
阅读全文
摘要:【一】引入 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。 子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进
阅读全文
摘要:【一】multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进
阅读全文
摘要:【一】什么是进程 【1】理论 正在进行的一个过程或者说一个任务。 而负责执行任务则是cpu。 【2】单任务 单核+多道,实现多个进程的并发执行 dream在一个时间段内有很多任务要做: python备课的任务 写书的任务 交女朋友的任务 王者荣耀上分的任务, 但dream同一时刻只能做一个任务(cp
阅读全文
摘要:【一】开篇介绍 顾名思义,进程即正在执行的一个过程。 进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。 操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,必须事先了解操作系统 【二】为什么要有
阅读全文
摘要:【一】引入 socket并不能多并发,只能支持一个用户 socketserver 模块是 Python 中用于创建网络服务器的模块,提供了一种简单而一致的接口。 它是构建网络服务器的框架,处理了创建、维护和关闭连接的许多底层细节 socketserver是socket的再封装。 【二】sockets
阅读全文
摘要:【一】如何实现验证 【1】思路 在TCP协议中,客户端和服务端之间的连接是通过三次握手过程建立起来的。 在这个过程中,会进行一些简单的验证来确保连接的安全性和合法性。 【2】具体的过程 客户端向服务器发送一个SYN(同步)包,其中包含一个随机生成的序列号seq=x和一个标志位SYN=1。 服务器收到
阅读全文
摘要:【一】什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 【1】socket收发消息的原理 首先需要掌握一个socket收发消息的原理 发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据 也就是说,应用程
阅读全文
摘要:【一】Scoket层在哪 还是用图来说话,一目了然。 【二】什么是socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 对用户来说,一组简单的接口就是全部,让
阅读全文
摘要:【一】网络通信实现 【1】实现网络通信的四要素 本机的IP地址 子网掩码 网关的IP地址 DNS的IP地址 【2】获取四要素的两种方式 (1)静态获取 即手动配置 (2)动态获取 通过dhcp获取 以太网头 ip头 udp头 dhcp数据包 (1)最前面的”以太网标头”,设置发出方(本机)的MAC地
阅读全文
摘要:【零】引入 【1】什么是网络编程 网络编程是指通过编程语言在计算机之间建立通信的一种方式。 它是在互联网上进行数据传输的关键组成部分,使计算机能够相互通信、交换信息和共享资源。 网络编程涉及许多不同的技术和协议,包括TCP/IP(传输控制协议/因特网协议),HTTP(超文本传输协议),FTP(文件传
阅读全文
摘要:【一】引入 C/S和B/S都是互联网中常见的网络结构模型。 【一】什么是C/S模型 C是英文单词“Client”的首字母,即客户端的意思 C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。 例如:拼多多APP、PC上的有道云笔记等等 【二】什么是B/S模型 B是英文单词“Br
阅读全文

浙公网安备 33010602011771号