当前位置: 首页 > news >正文

Go语言和Python 3的协程对比

Go语言和Python 3都支持协程(concurrent coroutines),但它们的实现机制、使用方式、调度方式和性能表现差异很大。下面是对比分析:


一、基本概念对比

特性Go 协程(goroutine)Python3 协程(async def + await
引入版本初始即支持Python 3.5 引入 async/await
创建方式go 函数()async def + await
调度方式内建调度器(M:N)事件循环(单线程,基于回调)
性能高性能、轻量相对较慢,依赖事件循环库(如 asyncio)
阻塞行为阻塞自动切换必须使用 await 非阻塞函数
栈大小初始约2KB,可扩展不暴露栈概念,受限于解释器管理

二、协程创建与运行方式对比

Go 示例

package mainimport ("fmt""time"
)func sayHello() {fmt.Println("Hello")
}func main() {go sayHello()  // 启动协程time.Sleep(time.Second) // 等待协程完成
}
  • 使用 go 关键字启动一个 goroutine。
  • 不需要显式事件循环或 await

Python 示例

import asyncioasync def say_hello():print("Hello")async def main():await say_hello()  # 使用 await 调用协程asyncio.run(main())  # 运行事件循环
  • 使用 async def 定义协程函数。
  • 使用 await 调用另一个协程。
  • 必须通过 asyncio.run() 显式运行事件循环。

三、调度模型对比

Go: M:N 调度模型

  • Go的运行时将成千上万个goroutine调度到少量OS线程上。
  • 类似绿色线程,有自己的调度器(非依赖外部库)。
  • 自动处理阻塞操作,例如 I/O。

Python: 单线程事件循环

  • 基于事件驱动模型(类似JavaScript)。
  • 协程必须是非阻塞的,只能 await 可等待对象。
  • 使用如 asynciotriocurio 来调度。

四、阻塞处理能力对比

场景GoPython3
网络请求可直接使用 net/http 等阻塞库必须使用 aiohttp 这类异步库
阻塞 I/O会自动调度其他 goroutine会阻塞整个事件循环,必须 await 异步
CPU 密集任务需要使用 goroutine + channel不适合 async,需要线程/进程并行

五、通信机制对比

特性GoPython3
通信方式channel(内建)queue(asyncio.Queue 等)
多协程同步select / channel / WaitGroupasyncio.gather / Queue
死锁检测编译期有简单提示,运行期报错基本无自动检测

六、性能对比

项目GoPython3
启动速度非常快(微秒级)慢(解释器管理)
协程数量数百万无压力一般上千到万级(易堆栈爆)
内存占用低(每个初始2KB)较高

七、调试与工具支持

特性GoPython3
可视化工具pprof、runtime statsaiohttp debugger、uvloop等
协程跟踪内建 runtime较难,依赖第三方
死锁调试有 runtime 检测机制手动调试

总结

项目Go 协程Python 协程
编程模型类似多线程,阻塞也能用明确异步模型,需 await 所有操作
易用性简洁,内建调度器无需依赖更复杂,需熟悉 asyncio 等库
通信方式内建 channel依赖 async queue 等
并发强度超强(适合高并发后端服务)中等偏弱(适合 I/O 多但非极端高并发)
适用场景Web服务、分布式系统、微服务异步网络请求、爬虫、桌面I/O程序

如果你是开发高并发后端服务,Go 协程会更高效更易于维护;
如果你在已有 Python 环境下开发异步爬虫或简单网络服务,Python 协程也能胜任。


具体场景下的对比


场景 1: 高并发 Web 后端服务

特性Go 协程Python 协程
并发处理极高(可处理数百万级并发)相对较低(适合几千到几万并发)
内存开销极低,2KB 初始栈大小相对较高,由 Python 解释器管理
请求响应延迟低,内存管理高效,调度快速由于全局解释器锁(GIL),性能较差
开发效率简单,内建 goroutine 管理需要额外理解 asyncio、aiohttp 等
易用性高,Go本身就是为并发而设计需要依赖外部库,async/await使用要求高
推荐场景高并发、高性能 Web 服务或微服务小规模并发、I/O 密集型任务

推荐: 如果你要开发需要处理大量并发连接的 Web 服务,Go 的协程无疑是更好的选择,尤其是在高并发时性能优势明显。


场景 2: 异步 I/O 密集型任务

特性Go 协程Python 协程
I/O 调度自动调度,无需手动管理 I/O 阻塞必须使用 asyncioawait 非阻塞操作
库支持网络库和 I/O 库原生支持协程aiohttpasyncio 等支持异步 I/O
协程数量能处理大规模 I/O 密集型任务适合 I/O 密集型但协程数量受限
推荐场景适合高并发的 Web 服务、分布式服务适合爬虫、文件下载、异步 Web 请求

推荐: 如果是做一些 I/O 密集型任务(比如爬虫、文件下载),Python 协程依然很适合,尤其是基于 asyncio 的异步 I/O 框架,易于实现,但对于非常大规模的并发请求,Go 会更有优势。


场景 3: 实时系统(低延迟要求)

特性Go 协程Python 协程
启动速度快(微秒级)慢,受限于 Python 的启动速度和 GIL
性能高性能,适合实时系统性能较低,尤其是在多线程时可能出现延迟
实时性要求高实时性,适合低延迟应用不适合高实时性要求的应用
推荐场景高频交易系统、实时数据处理系统一般不推荐用于高实时性要求的场景

推荐: 对于高实时性、低延迟要求的系统,如金融交易、实时数据处理等,Go 协程显然比 Python 更具优势。Python 的 GIL 和解释器延迟使其不适合实时任务。


场景 4: 大数据处理/计算密集型任务

特性Go 协程Python 协程
CPU 占用较高 CPU 占用时,可能需要多个 goroutine 与通道配合对 CPU 密集型任务适合多线程/多进程
计算密集任务不适合,适合 I/O 密集型不适合,使用多进程或 C 扩展更有效
内存和 CPU 管理自动管理内存与 CPU,适合高并发需要多进程或 concurrent.futures 等库
推荐场景不推荐适合使用 multiprocessingconcurrent.futures

推荐: 如果需要处理大量计算密集型任务,Python 在使用 multiprocessing 或者通过 C 扩展(如 numpy)来加速时会更合适。Go 虽然在高并发场景下表现优秀,但在计算密集型任务上可能不如 Python 配合多进程高效。


场景 5: 跨平台桌面应用(例如 GUI)

特性Go 协程Python 协程
UI 框架支持 Qt、GTK 等框架支持 PyQt、Tkinter 等框架
事件驱动可以结合 goroutine 使用事件驱动需要与 asyncio 结合
易用性需要外部库,UI 与并发协作较复杂事件驱动较简单,支持与 GUI 协作
推荐场景不推荐,GUI 开发与并发协作难度大推荐,尤其是使用 asyncio 和 async GUI 库

推荐: 对于跨平台桌面应用,Python 的异步支持和框架(如 asyncio 配合 PyQtTkinter)使得 GUI 与并发任务的协作更为方便。如果是以图形界面为主,Python 更适合开发。


场景 6: 云原生微服务

特性Go 协程Python 协程
部署方式易于部署到云环境,适合微服务容器化部署同样容易,适合中小型服务
性能性能优秀,适合大规模微服务性能稍差,适合中小规模服务
并发能力高并发,轻松应对高流量请求适合中等并发应用,但可能存在瓶颈
推荐场景适合高负载的微服务架构适合中等负载的微服务架构

推荐: 如果你在做云原生微服务,尤其是需要高吞吐量、低延迟的服务,Go 的协程会更适合。对于低负载的微服务,Python 的异步协程也能应对得很好。


总结

场景Go 协程推荐Python 协程推荐
高并发 Web 后端服务推荐一般
异步 I/O 密集型任务一般推荐
实时系统(低延迟)推荐一般
计算密集型任务不推荐使用多进程/多线程
跨平台桌面应用不推荐推荐
云原生微服务推荐一般

希望这些对比表能帮助你根据不同场景选择合适的技术栈!如果有更具体的需求或者疑问,也可以告诉我,我再帮你细化。

相关文章:

Go语言和Python 3的协程对比

Go语言和Python 3都支持协程(concurrent coroutines),但它们的实现机制、使用方式、调度方式和性能表现差异很大。下面是对比分析: 一、基本概念对比 特性Go 协程(goroutine)Python3 协程(asyn…...

量子计算在密码学中的应用与挑战:重塑信息安全的未来

在当今数字化时代,信息安全已成为全球关注的焦点。随着量子计算技术的飞速发展,密码学领域正面临着前所未有的机遇与挑战。量子计算的强大计算能力为密码学带来了新的应用场景,同时也对传统密码体系构成了潜在威胁。本文将深入探讨量子计算在…...

java知识点

一、ArrayList 的扩容 1.ArrayList 的扩容机制是将新容量计算为原容量的 15倍,即 oldcapacity(oldcapacity >>1)。这个操作将新容量设置为当前容量的 1.5 倍。 2.在 ArrayList 扩容时,会使用 Arrays.copyof()方法来复制原数组中的元素到新数组中&a…...

工厂模式:工厂方法模式 和 抽象工厂模式

工厂方法模式&#xff1a;优化&#xff0c;工厂类也分子类和父类 流程&#xff1a; 实例&#xff1a; #include <iostream> using namespace std; /*抽象产品类 TV(电视机类)*/ class TV { public: virtual void Show() 0; virtual ~TV();//声明析构函数为虚函数&…...

遨游通讯发布国产化旗舰三防手机AORO AU1:以自主可控重塑工业安全

在全球产业链加速重构的背景下&#xff0c;国产化技术突破已成为工业领域高质量发展的核心驱动力。作为专精特新中小企业&#xff0c;遨游通讯始终以“让世界更安全、更高效、更简单”为使命&#xff0c;深耕“危、急、特”场景智能通信设备的研发。近日&#xff0c;遨游通讯正…...

全波暗室和半波暗室的区别

什么是微波暗室&#xff1f;其作用是什么&#xff1a; 微波暗室又叫吸波室、电波暗室&#xff0c;一般是指由吸波材料和金属屏蔽体组成的特殊房间&#xff0c;该房间可有效防止电磁波的多次反射、隔绝外界电磁波的干扰&#xff0c;提供一个稳定的电磁环境&#xff0c;(高级点的…...

Qt 下载的地址集合

Qt 下载离线安装包 download.qt.io/archive/qt/5.14/5.14.2/ Qt 6 安装下载在线安装包 Index of /qt/official_releases/online_installers/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...

08_Docker Portainer可视化管理

简介&#xff1a; Portainer 是一个轻量级的、基于 Web 的 Docker 管理用户界面。它允许用户轻松管理 Docker 环境&#xff0c;包括 Docker 主机、容器、镜像、网络等。 多主机管理&#xff0c;Portainer 支持通过 agent 的方式管理多台 Docker 主机。无论是企业级大规模的 D…...

【产品经理从0到1】用户研究和需求分析

用户角色 定义 用户角色 user personal&#xff0c;从用户群体中抽象出来的典型用户&#xff0c;一般 会包含&#xff1a; 1、个人基本信息&#xff1b; 2、家庭、工作、生活环境描述&#xff1b; 3、与产品使用相关的具体情境&#xff0c;用户目标或产品使用行为描述等。 特…...

神经网络 “疑难杂症” 破解指南:梯度消失与爆炸全攻略(六)

引言 在神经网络的发展历程中&#xff0c;梯度消失和梯度爆炸如同两座难以翻越的大山&#xff0c;阻碍着深层神经网络发挥其强大的潜力。尤其是在处理复杂任务时&#xff0c;这两个问题可能导致模型训练陷入困境&#xff0c;无法达到预期的效果。本文将深入探讨梯度消失和梯度…...

深入理解无监督学习:探索数据的潜在结构

&#x1f4cc; 友情提示&#xff1a; 本文内容由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;创作平台的gpt-4o-mini模型生成&#xff0c;旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证&#xff0c;建议读者通过官方文档或实践进一步确认其准…...

Java实例化对象都有几种方式

在 Java 中&#xff0c;实例化对象的方式有多种&#xff0c;具体取决于场景需求和设计模式。以下是 ​7 种核心对象实例化方式及其原理、适用场景与代码示例&#xff1a; 1. ​new 关键字&#xff08;直接构造&#xff09;​ ​原理​&#xff1a;通过调用类的构造函数直接创建…...

数据结构:顺序表的实现

顺序表是用一段物理地址连续的存储单元依次储存数据的线性结构&#xff0c;一般情况下采用数组储存&#xff0c;在数组上完成数据的增删减改。 这里我们定义一个MyArrayList类&#xff0c;用来实现顺序表的功能&#xff1a; public class MyArrayList{int[] array;int usedsi…...

# 06_Elastic Stack 从入门到实践(六)

06_Elastic Stack 从入门到实践(六) 一、课程介绍 1、课程介绍 2、Nginx日志分析系统 3、Filebeat入门学习 4、Metricbeat入门学习 5、Kibana入门学习 6、Logstash入门学习 7、综合练习 二、Nginx 日志分析系统需求分析 1、业务需求 Nginx是一款非常优秀的web服务…...

[Android]豆包爱学v4.5.0小学到研究生 题目Ai解析

拍照解析答案 【应用名称】豆包爱学 【应用版本】4.5.0 【软件大小】95mb 【适用平台】安卓 【应用简介】豆包爱学&#xff0c;一般又称河马爱学教育平台app,河马爱学。 关于学习&#xff0c;你可能也需要一个“豆包爱学”这样的AI伙伴&#xff0c;它将为你提供全方位的学习帮助…...

重装系统后的自用包

装驱动 sudo apt update sudo apt upgrade sudo apt install nvidia-driver-535搜狗输入法&#xff1a; https://shurufa.sogou.com/linux/guideClash verge&#xff1a; ubuntu20 下载1.7.7版本的 https://github.com/clash-verge-rev/clash-verge-rev/releases/tag/v1.7.7…...

4.22tx视频后台开发一面

总时长大概在一个小时&#xff0c;主要提问C、操作系统、计网以及数据库等方面&#xff0c;最后两个算法编程题。 一上来先介绍项目 Linux下的mybash命令处理器和内存池 mybash可以再总结归纳一下&#xff0c;一上来有点紧张没有条理 内存池是用边界标识法写的&#xff0c;…...

如何Ubuntu 22.04.5 LTS 64 位 操作系统部署运行SLAM3! 详细流程

以下是在本地部署运行 ORB-SLAM3 的详细步骤&#xff0c;基于官方 README.md 和最佳实践整理&#xff0c;适用于 Ubuntu 16.04/18.04/20.04/22.04 系统&#xff1a; 一、系统要求与依赖项安装 1. 基础系统要求 操作系统&#xff1a;Ubuntu 16.04/18.04/20.04/22.04&#xff…...

Ubuntu 上安装 Conda

在 Ubuntu 上安装 Conda&#xff08;Anaconda 或 Miniconda&#xff09;的完整步骤如下&#xff1a; --- **方法1&#xff1a;安装 Miniconda&#xff08;推荐&#xff09;** Miniconda 是 Anaconda 的精简版&#xff0c;只包含基本组件。 **1. 下载安装脚本** bash # 下载最…...

初级云计算运维工程师学习二

全面解析云计算服务模式&#xff1a;公有云、私有云、混合云及IaaS/PaaS/SaaS/DaaS 云计算部署模式&#xff1a;三种主要形式 1. 公有云&#xff08;Public Cloud&#xff09; 定义&#xff1a;云端资源开放给社会公众使用&#xff0c;由第三方云服务提供商通过互联网交付。 …...

物联网蓬勃发展是助力楼宇自控技术迈向成熟的关键

在当今数字化时代&#xff0c;物联网&#xff08;IoT&#xff09;正以前所未有的速度蓬勃发展&#xff0c;其影响力已广泛渗透到各个领域&#xff0c;楼宇自控技术便是其中之一。从本质上讲&#xff0c;楼宇自控旨在实现对建筑物内各类机电设备的智能化管理与控制&#xff0c;为…...

数字孪生技术:企业数字化转型的助推器

在当今环境下&#xff0c;企业面临的挑战不断增加。从可持续发展目标的要求到员工数字技能的提升&#xff0c;转型的呼声越来越高。然而&#xff0c;即使是经验丰富的领导者&#xff0c;也很难在这种前所未有的商业环境下实现转型。企业如何在满足可持续发展目标的同时保持盈利…...

ESM 内功心法:化解 require 中的夺命一击!

前言 传闻在JavaScript与TypeScript武林中,曾有两大绝世心法:CommonJS与ESM。两派高手比肩而立,各自称霸一方,江湖一度风平浪静。 岂料,时局突变。ESM逐步修成阳春白雪之姿,登堂入室,成为主流正统。CommonJS则渐入下风,功力不济,逐渐退出主舞台。 话说某日,一位前…...

安全调度系统:安全管理的智能中枢

安全调度系统作为安全管理体系的核心枢纽&#xff0c;正在深刻改变着传统安全管理的模式和效能。这个集成了先进信息技术的智能化平台&#xff0c;通过实时监控、智能分析和快速响应三大核心功能&#xff0c;构建起全方位、多层次的安全防护网络&#xff0c;成为各类场所安全管…...

Python爬虫从入门到实战详细版教程Char01:爬虫基础与核心技术

1.1 什么是网络爬虫? 1.1.1 定义与分类 网络爬虫:互联网世界的“信息捕手” 网络爬虫(Web Crawler),又称网络蜘蛛或网络机器人,是一种通过预设规则自动访问网页、提取数据的程序系统。从技术视角看,其核心任务是通过模拟浏览器行为向目标服务器发起请求,解析网页内容…...

jsconfig.json文件的作用

jsconfig.json文件的作用 ​ 为什么今天会谈到这个呢&#xff1f;有这么一个场景&#xff1a;我们每次开发项目时都会给路径配置别名&#xff0c;配完别名之后可以简化我们的开发&#xff0c;但是随之而来的就有一个问题&#xff0c;一般来说&#xff0c;当我们使用相对路径时…...

Python线程全面详解:从基础概念到高级应用

一、线程基础概念 1.1 进程与线程的关系 进程是操作系统资源分配的基本单位&#xff0c;它是程序的一次执行过程。当我们将程序加载到内存中运行时&#xff0c;系统会为它分配CPU、内存、文件句柄等资源&#xff0c;这时就形成了一个进程。 线程是CPU调度的基本单位&#xf…...

学习模拟电路

学习模拟电路需要掌握以下几个关键领域的知识和技能&#xff0c;涵盖基础理论、器件特性、电路设计、分析工具以及实践应用&#xff1a; 1. 基础理论与概念 电路基本定律&#xff1a;欧姆定律、基尔霍夫电压定律&#xff08;KVL&#xff09;和电流定律&#xff08;KCL&#xf…...

解码思维链:AI思维链如何重塑人类与机器的对话逻辑

第一章&#xff1a;思维链的诞生与进化 1.1 从"猜谜游戏"到"推理革命" 传统AI模型如同蒙眼解题的考生&#xff1a;当被问及"玛丽有12块饼干&#xff0c;吃掉4块后剩下多少"&#xff0c;它们擅长预测答案&#xff0c;却无法展示"12-48&quo…...

css3新特性第六章(2D变换)

css3新特性第五章(2D变换) CSS3 转换可以对元素进行移动、缩放、转动、拉长或拉伸。 2D位移2D缩放2D旋转2D扭曲多重变换变换原点 一、2D位移 2D 位移可以改变元素的位置&#xff0c;具体使用方式如下&#xff1a; 先给元素添加 转换属性 transform 编写 transform 的具体值&…...

L2-2、示范教学与角色扮演:激发模型“模仿力“与“人格“

一、Few-shot 教学的核心原理与优势 在与大语言模型交互时&#xff0c;Few-shot&#xff08;少样本&#xff09;教学是一种强大的提示技术。其核心原理是通过提供少量示例&#xff0c;引导模型理解我们期望的输出格式和内容风格。 Few-shot 教学的主要优势包括&#xff1a; …...

MAC系统下完全卸载Android Studio

删除以下文件 /Applications/Android Studio.app /Users/用户名/Library/Application Support/Google/AndroidStudio2024.2 /Users/用户名/Library/Google/AndroidStudio /Users/用户名/Library/Preferences/com.google.android.studio.plist /Users/用户名/Library/Cache…...

rgw的d3n功能配置

背景 最近在看缓存相关&#xff0c;文件系统可以通过fscache加速&#xff0c;加速的效果就是读取的时候能够缓存&#xff0c;原理是在网关的地方加入一个高速缓存盘&#xff0c;这样在后续读取的时候&#xff0c;能够直接从缓存盘读取&#xff0c;这样能够减少与集群的交互&am…...

this._uid:Vue 内部为每个组件实例分配的唯一 ID

Vue 提供了一些方法可以帮助你区分组件实例&#xff0c;例如通过 this._uid&#xff08;Vue 内部为每个组件实例分配的唯一 ID&#xff09;或自定义标识符。 以下是具体的实现步骤和代码示例&#xff1a; console.log("当前组件实例ID:", this._uid, "时间戳:&…...

使用Python设置excel单元格的字体(font值)

一、前言 通过使用Python的openpyxl库&#xff0c;来操作excel单元格&#xff0c;设置单元格的字体&#xff0c;也就是font值。 把学习的过程分享给大家。大佬勿喷&#xff01; 二、程序展示 1、新建excel import openpyxl from openpyxl.styles import Font wb openpyxl.…...

【深度学习】#8 循环神经网络

主要参考学习资料&#xff1a; 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 为了进一步提高长线学习的效率&#xff0c;该系列从本章开始将舍弃原始教材的代码部分&#xff0c;专注于理论和思维的提炼&#xff0c;系列名也改为“深度学习…...

三角形神经网络(TNN)

三角形神经网络&#xff08;TNN&#xff09;是一种新兴的神经网络架构&#xff0c;不过目前它并非像 CNN、RNN 等传统网络那样被广泛研究和应用&#xff0c;以下为你解释其原理并结合例子说明&#xff1a; 原理 基本结构 三角形神经网络的核心思想是构建一种类似三角形的层次…...

【JavaEE】-- MyBatis操作数据库(1)

文章目录 1. 什么是MyBatis2 MyBatis入门2.1 准备工作2.1.1 创建工程 2.2 配置数据库连接字符串2.3 写持久层代码2.4 单元测试 3. MyBatis的基础操作3.1 打印日志3.2 参数传递3.3 增&#xff08;insert&#xff09;3.3.1 返回主键 3.4 删&#xff08;delete&#xff09;3.5 改&…...

人工智能大模型备案与服务登记:监管体系的双轨逻辑与实操指南

一、核心差异&#xff1a;监管框架的分层设计 适用范围的本质分野 大模型备案&#xff1a;针对直接向公众提供生成式服务的自研或微调模型&#xff08;如 ChatGPT 类产品&#xff09;&#xff0c;要求模型具备舆论属性或社会动员能力。典型场景包括智能客服、内容创作平台等。大…...

衡石ChatBI:依托开放架构构建技术驱动的差异化数据服务

在当今数字化浪潮中&#xff0c;企业对数据价值的挖掘和利用需求日益增长。BI&#xff08;商业智能&#xff09;工具作为企业获取数据洞察的关键手段&#xff0c;其技术架构的创新与发展至关重要。衡石科技的Chat BI凭借其独特的开放架构&#xff0c;在BI领域脱颖而出&#xff…...

AOSP Android14 Launcher3——RecentsView最近任务数据加载

最近任务是Launcher中的一个重要的功能&#xff0c;显示用户最近使用的应用&#xff0c;并可以快速切换到其中的应用&#xff1b;用户可以通过底部上滑停顿进入最近任务&#xff0c;也可以在第三方应用底部上滑进最近任务。 这两种场景之前的博客也介绍过&#xff0c;本文就不…...

分析型数据库与事务型数据库?核心差异与选型指南

在当今数据驱动的业务环境中&#xff0c;选择合适的数据库架构已成为企业技术决策的关键。然而&#xff0c;面对事务型数据库和分析型数据库的选择&#xff0c;许多技术团队往往陷入困境&#xff1a;日常运行良好的系统在数据量激增时性能骤降&#xff0c;简单的查询在复杂分析…...

Linux-信号

信号是由用户&#xff0c;系统或者进程发送给目标进程的信息&#xff0c;以通知目标进程某个状态的改变或系统异常。 进程分为前台进程和后台进程&#xff0c;对于前台进程我们可以输入特殊的终端字符来给它发送信号&#xff0c;比如输入Ctrlc&#xff0c;发送一个中断信号 系…...

Oracle数据库学习之路-目录

Oracle数据库学习之路 一、安装 &#xff08;一&#xff09;数据库安装步骤详解 &#xff08;二&#xff09;开发工具安装与配置 二、基础语法篇 &#xff08;一&#xff09;基础 SQL 语法详解 &#xff08;二&#xff09;SQL 语法练习与案例分析 三、高级语法篇 &…...

用selenium4 webdriver + java 搭建并完成第一个自动化测试脚本

自动化测试任务&#xff1a; 百度搜索自己的姓名。点击第一个链接&#xff08;或者第二个&#xff09;&#xff0c;在新的页面上&#xff0c;添加断言&#xff0c;验证你的名字是否存在。 实验资料百度网盘下载路径&#xff1a; 链接: https://pan.baidu.com/s/1nVlHX_ivres…...

晨控CK-FR12与欧姆龙NX系列PLC配置EtherNet/IP通讯连接操作手册

晨控CK-FR12系列作为晨控智能工业级别RFID读写器,支持大部分工业协议如RS232、RS485、以太网。支持工业协议Modbus RTU、Modbus TCP、Profinet、EtherNet/lP、EtherCat以及自由协议TCP/IP等。 本期主题&#xff1a;围绕CK-FR12产品的EtherNet/IP通讯协议与欧姆龙PLC进行通讯配置…...

武装Burp Suite工具:RouteVulScan插件_被动扫描发现漏洞.

武装Burp Suite工具&#xff1a;RouteVulScan插件_被动扫描. RouteVulScan 是一款使用Java语言编写&#xff0c;基于Burp Suite API的插件&#xff0c;用于递归地检测潜在的脆弱路径。 该插件通过被动扫描的方式&#xff0c;对路径的各个层级进行深度分析。利用预设的正则表达…...

Selenium+Java 环境搭建

windows电脑环境搭建Chrome浏览器 1.下载 Google Chrome 网络浏览器 &#xff08;一定要下载官方的&#xff01;&#xff01;&#xff01;&#xff09; 注&#xff1a;最好下载在浏览器默认的路径 便于查找&#xff0c;而且占内存不是很大 2.查看chrome浏览器的版本 3.下载…...

网易云IP属地可以查看城市吗?深度解析与使用指南

在互联网时代&#xff0c;用户的隐私和数据安全越来越受到关注。许多社交平台和应用都会显示用户的IP属地&#xff0c;以增加透明度和真实性。网易云音乐作为国内领先的音乐平台&#xff0c;也引入了IP属地显示功能。那么&#xff0c;网易云IP属地能否精确到城市&#xff1f;这…...

Cline 之Plan和Act模式

Cline 提供了 "Plan & Act"双模式开发框架。适用在不同的场景。 一、核心模式理念 通过结构化开发流程提升AI编程效率&#xff0c;采用"先规划后执行"的核心理念。 该框架旨在帮助开发者构建更易维护、准确性更高的代码&#xff0c;同时显著缩短开发…...