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

【大模型系列篇】Qwen3思考预算及思考模式切换实现原理探索

我们之前一期有介绍过阿里发布并开源的Qwen3大语言模型,无缝集成思考模式、多语言和MCP智能体:《Qwen3开源全新一代大语言模型来了,深入思考,更快行动》,感兴趣的小伙伴可以跳转阅读。

而在本次开源的 Qwen3 的更新中,核心亮点之一是支持思考模式的切换。Qwen3 既可以在思考模式下深思熟虑,也可以在非思考模式中提供快速的响应。更重要的是,这两种模式的结合增强了 Qwen3 实现稳定且高效的“思考预算”控制能力。如下图所示,随着思考预算分配的提升,模型在评测集上的得分也逐渐提升。这样一来,用户可以根据不同的任务难度分配不同的预算,从而在速度与性能之间实现更优的平衡。

那么,思考预算思考模式切换都是如何实现的呢?

思考预算原理

在 Qwen Chat 网页版 chat.qwen.ai 上,深度思考的思考预算是可调节的,粒度为 1024 tokens,最大可达 38912 tokens,也就是 38 * 1024 tokens,如下图所示。

那么,在解密思考预算调整的原理之前,我们先来看一个例子。下图展示了 Qwen3-235B-A22B 在 1024 tokens 的思考预算下回答问题的情况。(为了能让 Qwen3 可以思考到 1024 tokens 或者更多,这里使用了一个马尔科夫链的相关问题)

示例问题:

假设赌徒初始本金为 A 元,每局赌博有 50% 概率赢 1 元或输 1 元,目标是达到 N 元或破产。此问题可通过马尔科夫链建模,计算最终破产或成功的概率,请问如何计算?

Qwen3 在达到思考预算上限时,思考过程就戛然而止了。所以很难不让人相信,思考预算的实现原理就是,统计思考过程中的(<think> 后) tokens 数量,达到思考预算上限时,立刻停止思考(强行截断停止),并补上 </think>,以进入输出阶段。

思考模式切换

Qwen3 思考模式切换的原理相对透明,可以在 Qwen3 的 tokenizer_config.json 中的 chat_template 中看到。下面展示了 Jinja 格式的 Qwen3 对话模板。

{%- if tools %}{{- '<|im_start|>system\n' }}{%- if messages[0].role == 'system' %}{{- messages[0].content + '\n\n' }}{%- endif %}{{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}{%- for tool in tools %}{{- "\n" }}{{- tool | tojson }}{%- endfor %}{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
{%- else %}{%- if messages[0].role == 'system' %}{{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}{%- endif %}
{%- endif %}
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
{%- for message in messages[::-1] %}{%- set index = (messages|length - 1) - loop.index0 %}{%- if ns.multi_step_tool and message.role == "user" and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}{%- set ns.multi_step_tool = false %}{%- set ns.last_query_index = index %}{%- endif %}
{%- endfor %}
{%- for message in messages %}{%- if (message.role == "user") or (message.role == "system" and not loop.first) %}{{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}{%- elif message.role == "assistant" %}{%- set content = message.content %}{%- set reasoning_content = '' %}{%- if message.reasoning_content is defined and message.reasoning_content is not none %}{%- set reasoning_content = message.reasoning_content %}{%- else %}{%- if '</think>' in message.content %}{%- set content = message.content.split('</think>')[-1].lstrip('\n') %}{%- set reasoning_content = message.content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}{%- endif %}{%- endif %}{%- if loop.index0 > ns.last_query_index %}{%- if loop.last or (not loop.last and reasoning_content) %}{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}{%- else %}{{- '<|im_start|>' + message.role + '\n' + content }}{%- endif %}{%- else %}{{- '<|im_start|>' + message.role + '\n' + content }}{%- endif %}{%- if message.tool_calls %}{%- for tool_call in message.tool_calls %}{%- if (loop.first and content) or (not loop.first) %}{{- '\n' }}{%- endif %}{%- if tool_call.function %}{%- set tool_call = tool_call.function %}{%- endif %}{{- '<tool_call>\n{"name": "' }}{{- tool_call.name }}{{- '", "arguments": ' }}{%- if tool_call.arguments is string %}{{- tool_call.arguments }}{%- else %}{{- tool_call.arguments | tojson }}{%- endif %}{{- '}\n</tool_call>' }}{%- endfor %}{%- endif %}{{- '<|im_end|>\n' }}{%- elif message.role == "tool" %}{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}{{- '<|im_start|>user' }}{%- endif %}{{- '\n<tool_response>\n' }}{{- message.content }}{{- '\n</tool_response>' }}{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}{{- '<|im_end|>\n' }}{%- endif %}{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}{{- '<|im_start|>assistant\n' }}{%- if enable_thinking is defined and enable_thinking is false %}{{- '<think>\n\n</think>\n\n' }}{%- endif %}
{%- endif %}

我们直接来看最后几行,也就是 add_generation_prompt 部分。

{%- if add_generation_prompt %}{{- '<|im_start|>assistant\n' }}{%- if enable_thinking is defined and enable_thinking is false %}{{- '<think>\n\n</think>\n\n' }}{%- endif %}
{%- endif %}

上面就是 add_generation_prompt 部分的代码。可以看到,如果传入了 enable_thinking 并且为 false 的情况下,模型就会在 <|im_start|>assistant\n 的后面再补上 <think>\n\n</think>\n\n 以让模型结束思考,直接进入输出阶段。

让我们再来看 QwQ 在 add_generation_prompt 时的行为,来更好地理解 Qwen3 的思考模式切换逻辑。

{%- if add_generation_prompt %}{{- '<|im_start|>assistant\n<think>\n\n' }}
{%- endif %}

可以看到 QwQ 通过补上额外的 <think> 来让模型强制进入思考阶段。而Qwen3 通过补上 <think>\n\n</think>\n\n 的方式告诉模型,思考阶段什么都没有,但是思考阶段已经结束了,需要进入最终输出阶段了,从而实现了思考模式切换。

更多关于Qwen3思考模式的探索,欢迎跳转阅读《对Qwen3提到的thinking和no thinking混合思考模式的讨论》。

相关文章:

【大模型系列篇】Qwen3思考预算及思考模式切换实现原理探索

我们之前一期有介绍过阿里发布并开源的Qwen3大语言模型&#xff0c;无缝集成思考模式、多语言和MCP智能体&#xff1a;《Qwen3开源全新一代大语言模型来了&#xff0c;深入思考&#xff0c;更快行动》&#xff0c;感兴趣的小伙伴可以跳转阅读。 而在本次开源的 Qwen3 的更新中…...

PPT 制作难题迎刃而解,影刀 RPA 开启自动化创作时代

前言 影刀cto说过这么一句话&#xff1a;不迷信AI&#xff0c;也不忽视AI&#xff0c;我们要打造以AI驱动的RPA&#xff0c;AI对当前社会的影响真的不亚于一场战争的爆发 RPA&#xff08;机器人流程自动化&#xff09;作为一种已被广泛应用的技术&#xff0c;能基于预设规则自…...

Node.js面试题

一、什么是Node.js&#xff1f; Node.js 是一个开源的跨平台 JavaScript 运行时环境&#xff0c;允许开发者在服务器端运行 JavaScript 代码。它基于 Chrome 的 V8 JavaScript 引擎构建&#xff0c;能够高效地处理 I/O 操作&#xff0c;适合构建高性能的网络应用。 异步非阻塞&…...

C# NX二次开发:投影曲线和偏置曲线UFUN函数详解

大家好&#xff0c;今天要讲的是关于投影曲线和偏置曲线相关的函数。 &#xff08;1&#xff09;UF_CURVE_create_proj_curves1&#xff1a;这个函数的定义为创建投影曲线。 Defined in: uf_curve.h Overview Creates projection curves. Objects to project may be poi…...

从明文裸奔到密钥长城:HTTPS加密全链路攻防与CA信任锚点构建

前言&#xff1a;本文将从HTTP的隐患出发&#xff0c;深入剖析HTTPS如何通过加密算法、数字证书与信任链机制重塑网络通信的安全边界。我们将探讨协议的证书颁发机构&#xff08;CA&#xff09;的信任逻辑&#xff0c;以及HTTPS在性能与安全之间的平衡艺术。将帮助您更从容地应…...

C# WPF 颜色拾取器

x:Name=Color Picker 语言:C# WPF 下载:https://download.csdn.net/download/polloo2012/90780640 主界面 颜色库 关于我们 颜色拾取器是一种能够帮助用户获取颜色信息,并进行颜色选择、识别和调整的工具,以下将从其常见类型、使用场景及部分软件工具这几个维度展开介绍…...

MySQL关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗&#xff1f; 2.什么是线程死锁&#xff1f;死锁相关面试题 2.1 什么是死锁&#xff1a; 2.2 形成死锁的四个必要条件是什么&#xff1f; 2.3 如何避免线程死锁&#xff1f; 3. MySQL 怎么排查死锁问题&#xff1f; 4.Java线上死锁问题如…...

亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比

ASPICE&#xff08;Automotive SPICE&#xff09;和ISO 21434是汽车软件开发领域的两大核心标准&#xff0c;分别聚焦于过程质量与网络安全。以下从核心目标、覆盖范围、实施重点、协同关系及行业价值五个维度进行深度对比分析&#xff1a; 一、核心目标对比 ASPICE&#xff1…...

第5讲、Transformer 编码器(Encoder)处理过程详解

&#x1f50d; Transformer 编码器&#xff08;Encoder&#xff09;处理过程详解 Transformer Encoder 是一个由 N 层&#xff08;一般为 6 层&#xff09;堆叠而成的模块结构。每一层的本质是两个核心子模块&#xff1a; 多头自注意力&#xff08;Multi-Head Self-Attention…...

Flutter Drawer 详解

目录 一、引言 二、Drawer 的基本用法 三、主要属性 四、常见问题与解决方案 4.1 手势冲突处理 4.2 多级导航管理 4.3 响应式布局适配 五、最佳实践建议 5.1 性能优化 5.2 无障碍支持 5.3 跨平台适配 六、结论 相关推荐 一、引言 在移动应用开发中&#xff0c;侧边…...

游戏引擎学习第263天:添加调试帧滑块

运行游戏&#xff0c;开始今天的开发工作。 我们继续游戏代码基础上进行重构&#xff0c;目标是实现更多的性能分析界面功能&#xff0c;尤其是调试用的用户界面。 目前运行游戏并打开性能分析窗口后&#xff0c;发现界面功能上还有不少缺陷。现在的界面可以向下钻取查看具体…...

Hadoop客户端环境准备

hadoop集群我们配置好了&#xff0c;要与它进行交互&#xff0c;我们还需要准备hadoop的客户端。要分成两步&#xff1a;下载hadoop包、配置环境变量。 1. 找到资料包路径下的Windows依赖文件夹&#xff0c;拷贝hadoop-3.1.0到非中文路径&#xff08;比如d:\hadoop-3.1.0&#…...

当“信任”遇上“安全”:如何用Curtain Logtrace记录文件操作活动 守护团队与数据的双重底线?

你是否也有过这样的担忧&#xff1f; 团队成员在处理敏感数据时是否遵守了公司规范&#xff1f; 某份被篡改或外泄的文档&#xff0c;到底发生了什么&#xff1f; 为了数据安全而频繁加密、限制下载&#xff0c;却反过来打击了员工的工作积极性…… 如何在不伤害团队信任的…...

如何进行室内VR全景拍摄?

如何进行室内VR全景拍摄&#xff1f; 室内VR全景拍摄作为先进的视觉技术&#xff0c;能够为用户提供沉浸式的空间体验。本文介绍如何进行室内VR全景拍摄&#xff0c;并阐述众趣科技在这一领域的技术支持和服务优势。 室内VR全景拍摄基础 1. 室内VR全景拍摄概述 室内VR全景拍…...

一文走进GpuGeek | conda常用命令

conda 常用命令 查看conda版本 conda --version 查看conda信息 conda info 更新conda自身到最新版本&#xff0c;同时也会更新其它包 conda update conda conda更新指定包&#xff0c;这里更新通过conda安装的zlib包 conda update zlib 列出所有虚拟环境 conda env li…...

Consumer Group的作用是什么?Rebalance的触发条件有哪些? (实现消费者负载均衡;消费者加入/离开、订阅Topic变化等)

好的&#xff0c;我现在需要回答用户关于Kafka Consumer Group和Rebalance的问题。首先&#xff0c;用户问的是Consumer Group的作用以及Rebalance的触发条件。根据之前的对话历史&#xff0c;用户已经了解了Kafka的基本组件、消息保留策略、顺序性保证等&#xff0c;现在的问题…...

【计算机视觉】OpenCV实战项目:Long-Exposure:基于深度学习的长时间曝光合成技术

Long-Exposure&#xff1a;基于深度学习的长时间曝光合成技术 项目概述与技术背景项目核心功能技术原理 环境配置与安装硬件要求建议详细安装步骤可选组件安装 实战应用指南1. 基础使用&#xff1a;视频转长曝光2. 高级模式&#xff1a;自定义光轨合成3. 批量处理模式 技术实现…...

CentOS 7 安装OpenJDK 17 JRE

CentOS 7 自带的java 版本为&#xff1a;java version "1.8.0_311"&#xff0c; 有些软件的运行需要更高的java版本。CentOS 7 自带的默认仓库里 没有 OpenJDK 17&#xff0c;但是 Adoptium 项目&#xff08;前身 AdoptOpenJDK&#xff09;提供了稳定的 OpenJDK 17 版…...

C++从入门到实战(十三)C++函数模板与类模板初阶讲解

C从入门到实战&#xff08;十三&#xff09;C函数模板与类模板初阶讲解 前言一、为什么需要模板1. 函数重载的问题2. 泛型编程和模板的作用 二、函数模板2.1 函数模板格式2.2 函数模板的原理2.3 函数模板的实例化&#xff08;1&#xff09;隐式实例化&#xff1a;&#xff08;2…...

CentOS服务器中如何解决内存泄漏问题?

内存泄漏并不是“爆炸性内存飙升”&#xff0c;而是程序申请了内存但没有释放&#xff0c;造成系统可用内存逐渐减少&#xff0c;直到用光。 表现形式&#xff1a; 系统空闲内存越来越少;swap频繁被占用;某些服务响应变慢甚至挂掉;重启服务后内存才释放。 内存泄漏的根源在哪…...

【Java项目脚手架系列】第三篇:Spring MVC基础项目脚手架

【Java项目脚手架系列】第三篇&#xff1a;Spring MVC基础项目脚手架 前言 在前面的文章中&#xff0c;我们介绍了Maven基础项目脚手架和JavaWeb基础项目脚手架。今天&#xff0c;我们将介绍Spring MVC项目脚手架&#xff0c;这是一个用于快速搭建Web应用的框架。 什么是Spr…...

chili3d调试笔记12 deepwiki viewport svg雪碧图 camera three.ts

xiangechen/chili3d | DeepWiki viewport阅读 &#x1f9e0;deep 我要把模型投影成dxf导出有什么办法 引用lookat 截图是如何实现的 明天接着搞 ---------------------------------------------------------------- 截图没什么用 搞个工程图模块可能才行 一个文件一行 忘…...

tinyrenderer笔记(Shader)

tinyrenderer个人代码仓库&#xff1a;tinyrenderer个人练习代码 前言 现在我们将所有的渲染代码都放在了 main.cpp 中&#xff0c;然而在 OpenGL 渲染管线中&#xff0c;渲染的核心逻辑是位于 shader 中的&#xff0c;下面是 OpenGL 的渲染管线&#xff1a; 蓝色是我们可以自…...

【奔跑吧!Linux 内核(第二版)】第1章:Linux 系统基础知识

笨叔 陈悦. 奔跑吧 Linux 内核&#xff08;第2版&#xff09; [M]. 北京: 人民邮电出版社, 2020. 文章目录 Linux 系统的发展历史Linux 发行版Red Hat LinuxDebian LinuxSuSE Linux优麒麟 Linux Linux 内核介绍宏内核和微内核Linux 内核概貌 Linux 系统的发展历史 Linux 系统诞…...

​Spring + Shiro 整合的核心要点及详细实现说明

在 Spring 项目中集成 Apache Shiro 可以实现轻量级的安全控制&#xff08;认证、授权、会话管理等&#xff09;。以下是 ​Spring Shiro 整合的核心要点及详细实现说明&#xff1a; 一、Spring 与 Shiro 整合的核心组件 ​组件​​作用​ShiroFilterFactoryBean创建 Shiro 过…...

已经写好论文的AI率降低

视频演示 https://www.bilibili.com/video/BV1v4VpzgEdc 提示词 你是我专门请来的“降维写作助手”&#xff0c;专门干一件事&#xff1a;把 AI 写得太“像 AI”的文字改得更像人写的。我们主要是处理论文、创作类内容&#xff0c;目标就是&#xff1a;不让检测工具一眼识破…...

AI教你学VUE——Deepseek版

一、基础阶段&#xff1a;打好Web开发基础 HTML/CSS基础 学习HTML标签语义化、CSS布局&#xff08;Flex/Grid&#xff09;、响应式设计&#xff08;媒体查询、REM/VW单位&#xff09;。资源推荐&#xff1a; MDN Web文档&#xff08;免费&#xff09;&#xff1a;HTML | CSS实战…...

卷积神经网络基础(五)

6.3 Softmax-with-Loss 层 我们最后介绍输出层的softmax函数&#xff0c;之前我们知道softmax函数会将输入值正规化之后再输出。在手写数字识别的例子中&#xff0c;softmax层的输出如下&#xff1a; 输入图像通过Affi ne层和ReLU层进行转换&#xff0c;10个输入通过Softmax层…...

Go语言——string、数组、切片以及map

一、string、数组、切片代码 package mainimport "fmt"// 定义结构体 type student struct {id intname stringage intscore float32 }func main() {// 使用var声明切片var slice1 []intslice1 append(slice1, 1)slice1 append(slice1, 2)slice1 append(sl…...

线性回归有截距

In [ ]: ∑ i 1 m ( y i − x i T w ) 2 \sum _{i1}^{m}(y_{i}-x_{i}^{T}w)^{2} i1∑m​(yi​−xiT​w)2 w ^ ( X T X ) − 1 X T y \hat {w}(X^{T}X)^{-1}X^{T}y w^(XTX)−1XTy In [ ]: 1 &#xff03;如果有截距&#xff0c;求解时&#xff0c;需要梯度下降法求解w 和b …...

【基础】Python包管理工具uv使用全教程

一、uv简介 uv 是由 Astral&#xff08;前身为 Basis&#xff09;团队开发的 Python 包安装器和解析器&#xff0c;完全使用 Rust 语言编写。与传统 Python 工具不同&#xff0c;uv 将多个工具的功能整合到一个高性能的解决方案中&#xff0c;旨在提供更现代、更高效的 Python…...

事务(transaction)-上

事务概述 食物是一个最小的工作单元。在数据库当中&#xff0c;事务表示一件完整的事儿。一个业务的完成可能需要多条DML语句共同配合才能完成&#xff0c;例如转账业务&#xff0c;需要执行两条DML语句&#xff0c;先更新张三账户的余额&#xff0c;再更新李四账户的余额&…...

Python训练打卡Day17

无监督算法中的聚类 知识点 聚类的指标聚类常见算法&#xff1a;kmeans聚类、dbscan聚类、层次聚类三种算法对应的流程 实际在论文中聚类的策略不一定是针对所有特征&#xff0c;可以针对其中几个可以解释的特征进行聚类&#xff0c;得到聚类后的类别&#xff0c;这样后续进行解…...

【爬虫】码上爬第6题-倚天剑

堆栈入手&#xff1a; 全部复制的话&#xff0c;注意修改一些必要在地方&#xff1a; 通过s函数来获取请求头的加密参数 通过xxxxoooo来获取解密后的数据 js代码关键点&#xff1a; python代码我推荐使用这个网站&#xff1a; Convert curl commands to code 根据生成的代码…...

自定义SpringBoot Starter-笔记

SpringBoot Starter的介绍参考&#xff1a; Spring Boot Starter简介-笔记-CSDN博客。这里介绍如何自定义一个springBoot Starter。 1. 项目结构 创建一个 Maven 项目&#xff0c;结构如下&#xff1a; custom-spring-boot-starter-demo/ ├── custom-hello-jdk/ # jdk模…...

一周学会Pandas2 Python数据处理与分析-Pandas2数据类型转换操作

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Pandas 提供了灵活的方法来处理数据类型转换&#xff0c;以下是常见操作及代码示例&#xff1a; 1. 查看数据类型 …...

Java中常见的问题

1. SSO中的Cookie/Token生成与安全传递 生成Cookie/Token&#xff1a; Cookie&#xff1a;服务器通过Set-Cookie响应头生成&#xff0c;包含用户ID、过期时间等&#xff0c;需设置HttpOnly和Secure属性防止XSS和中间人攻击。Token&#xff08;如JWT&#xff09;&#xff1a;使…...

【JEECG】BasicTable内嵌Table表格错位

功能说明&#xff1a; 解决代码生成后&#xff0c;本地内嵌Table表格样式错位。 优化前&#xff1a; 优化后&#xff1a; 解决方法&#xff1a; 对应的List.vue页面增加css样式调整。 <style lang"less" scoped>//内嵌表格margin边距覆盖:deep(.ant-table-…...

人工智能 计算智能模糊逻辑讲解

引言 在计算智能&#xff08;Computational Intelligence&#xff09;领域&#xff0c;模糊逻辑&#xff08;Fuzzy Logic&#xff09;作为一种处理不确定性与模糊性信息的数学工具&#xff0c;自 1965 年由洛夫特扎德&#xff08;Lotfi Zadeh&#xff09;提出以来&#xff0c;…...

基于SSM实现的健身房系统功能实现一

一、前言介绍&#xff1a; 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升&#xff0c;健身行业也在迅速扩展。越来越多的人加入到健身行列&#xff0c;健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂&#xff0c;传统的手工或部分自动化的管…...

spring详解-循环依赖的解决

Spring循环依赖 重点提示&#xff1a; 本文都快写完了&#xff0c;发现“丈夫” 的英文是husband… 在“②有AOP循环依赖” 改过来了&#xff0c;前面用到的位置太多了就没改。我是说怎么idea的hansband英文下面怎么有波浪线。各位能够理解意思就行&#xff0c;英文拼写不要过…...

【大模型面试每日一题】Day 10:混合精度训练如何加速大模型训练?可能出现什么问题?如何解决?

【大模型面试每日一题】Day 10&#xff1a;混合精度训练如何加速大模型训练&#xff1f;可能出现什么问题&#xff1f;如何解决&#xff1f; &#x1f4cc; 题目重现 &#x1f31f;&#x1f31f; 面试官&#xff1a;混合精度训练如何加速大模型训练&#xff1f;可能出现什么问…...

[学习]RTKLib详解:rtkcmn.c与rtkpos.c

文章目录 Part A、Rrtkcmn.c一、总体功能二、关键API列表三、核心算法实现四、函数功能与参数说明1. uniqnav2. lsq3. filter4. matmul5. satazel6. ionmapf7. geodist8. timeadd9. dgetrf_ / dgetri_&#xff08;LAPACK接口&#xff09; 五、工作流程说明4.1 模块在RTKLib中的…...

cookie/session的关系

什么是cookie&#xff0c;session 我们平时去医院看病时&#xff0c;从进医院那一刻&#xff0c;我们最开始要做的就是挂号&#xff08;需要我们填写表格&#xff0c;记录一些核心信息&#xff0c;医生会把这些信息录入电脑&#xff0c;并给我办一个就诊卡&#xff0c;卡里面只…...

Linux(十四)进程间通信(IPC),管道

一、进程间通信 &#xff08;一&#xff09;系统介绍进程间通信 进程间通信&#xff08;IPC&#xff09;介绍 小编插入的这篇文章详细介绍了进程间通信的一些内容&#xff0c;大家可以一起学习。 &#xff08;二&#xff09;进程间通信的方法 1、管道 2、信号量 3、共享…...

Nmap 工具的详细使用教程

Nmap&#xff08;Network Mapper&#xff09;是一款开源且功能强大的网络扫描和安全审计工具。它被广泛用于网络发现、端口扫描、操作系统检测、服务版本探测以及漏洞扫描等。 官方链接: Nmap 官方网站: https://nmap.org/Nmap 官方文档 (英文): https://nmap.org/book/man.h…...

Vue 自定义指令输入校验过滤

/*** 过滤字符串* param {*} filterCharRule* param {*} newVal* returns*/ function filterCharForValue(filterCharRule, newVal) {if(!filterCharRule || !newVal) returnconst isArray filterCharRule instanceof Arrayconst isRegExp filterCharRule instanceof RegExpi…...

OpenGl实战笔记(2)基于qt5.15.2+mingw64+opengl实现纹理贴图

一、作用原理 1、作用&#xff1a;将一张图片&#xff08;纹理&#xff09;映射到几何体表面&#xff0c;提升视觉真实感&#xff0c;不增加几何复杂度。 2、原理&#xff1a;加载图片为纹理 → 上传到 GPU&#xff1b;为顶点设置纹理坐标&#xff08;如 0~1 范围&#xff09;&…...

tinyrenderer笔记(透视矫正)

tinyrenderer个人代码仓库&#xff1a;tinyrenderer个人练习代码 引言 还要从上一节知识说起&#xff0c;在上一节中我为了调试代码&#xff0c;换了一个很简单的正方形 obj 模型&#xff0c;配上纹理贴图与法线贴图进行渲染&#xff0c;得了下面的结果&#xff1a; what&…...

c++类【发展】

类的静态成员&#xff08;用static声明的成员&#xff09;,在声明之外用例单独的语句进行初始化&#xff0c;初始化时&#xff0c;不再需要用static进行限定。在方法文件中初始化。以防重复。 特殊成员函数 复制构造函数&#xff1a; 当使用一个对象来初始化另一个对象…...