How Gradual Typing System Helps Us

作者 | Liyi
整理 | Hana

作者介绍:

Liyi, from Huawei, inc. 2012 Lab, OS Kernel Lab, working as

  • verification engineer, and
  • verification tool developer

Hiring @Beijing @Shanghai


写给不想看完全文的同仁们,以下是本文核心观点:

  • 类型系统的本质是提供信息,这些信息不仅仅是提供给编译器看的,也是提供给人看的
  • 站在工程视角,强大的类型系统并非银弹
    • 强大的类型系统带来更高的开发门槛,更低的迭代速度和原型 demo 的能力(个人观点,可探讨)
    • 过弱的/缺失类型系统支撑将极大降低开发质量和可维护性
  • 没有完美的类型系统(和语言),只有最适合的
  • 站在我们的场景下,Python 的渐进类型系统就是一个比较合适的类型系统
    • 我们很喜欢 Trait (Rust/Haskell),所以我们把 Trait 移植到了 Python

视频回顾在此:

渐进式类型系统如何帮助我们,以及如何在工程中改造Python渐进的类型系统


以下正文。

对于一个普通的开发者,类型对我们意味着什么?

一句话归纳:我认为 类型 是附着于程序之上的额外信息。类型系统的表达能力高低,则意味着通过类型能够提供给我们的信息的多少。高级的类型系统如精化类型系统,依赖类型系统等能够提供很多重要信息。但是这也会付出代价:类型检查变得更为困难。

今天想和大家一起聊一下,渐进式类型系统在我们的工程开发中是怎么样对我们产生帮助的,以及我们在工程实践中是怎么对 Python 的渐进式类型系统进行改造的。

我们先从一个小例子开始。在操作系统中,会有很多数据结构,这些数据结构是与 CPU 的核相关的,比如每个核的状态,每个核上在跑什么样的任务等等。这个时候每一个核有一个序号,我们称它是这个核的 id。id 的值的合法范围取决于硬件体系结构。假设我们有一个 8 核的 CPU,那这个核的号数应该在 0~7 内,即从 0 号核到 7 号核。当然,这个数字还得是一个整数。那么,当我们想要定义一个数据结构来描述这样一个 id 时,我们就需要有一个类型。

在这里插入图片描述

以 C 语言为例,最简单粗暴的定义方式,CoreID 实际上就是一个普通的整数。

// 1st definition
// It is a number ...
typedef int CoreID;

但是,CoreID 其实仅需要满足 0~7 这个范围,远小于 int 能够表示的内容,这时我们会认为这样定义的类型有点浪费。进一步地,我们可以把 CoreID 定义成一个 unsigned char,即一个无符号的 8 位整数。这样,CoreID 的范围就可以很小,同时其保存的整数是非负的(可见在这个过程中,我们增加了这个类型所抱有的信息量)。

// 2nd definition
// Small, and not negative
typedef unsigned char CoreID;

但是,我觉得这个定义还不够精确,我想要进一步细化一下 CoreID,这时我们就可以引入 Refinement Type。如有兴趣可以阅读这篇 精化类型简介。

RefinementTypes=Types+PredicatesRefinement Types = Types + PredicatesRefinementTypes=Types+Predicates

下面这段代码就是 LiquidHaskell 1 (a Refinement Type Checker for Haskell) 里 Refinement Type 定义方式。我们将 CoreID 定义为一个集合,集合的基本类型是一个整数(Int),集合里的每个元素都要在 0~7 范围内。

-- 3rd definition
-- and, satisfies a certain constraint
type CoreID = {v: Int | 0 <= v && v <= 7}

现在我们有了三种不同的类型定义。这些不同的定义方法对工程上来说有什么意义呢?

我们看下面这段代码。假设有一个数组 taskList,我们需要从这个数组中根据 coreId 取出一个数据。例如下面这样一个函数:

Task getTask(Task taskList[8], CoreID coreId) {...return currTask[coreId];
}

大家可以看到,带了 refinement 的类型系统是可以分析出是合法的,而前两种类型定义都是不可以的。这是因为 Refinement Type 带给了我们更多的信息。

如下图所示,我们现在从更底层的角度去想。第一种定义的类型 int 在内存中占用了 32 bits(当然有可能在你的编译器里面是 64 bits),这其中有一个位是符号位,因此实际上能够用来描述的就是 31 个数据位(或者 63 个数据位)和一个符号位。

第二种定义中的类型 unsigned char 告诉我们,这个类型在内存中,实际上占用了 8 bits,而且都是数据位。

第三种类型定义能够告诉我们什么信息?其实什么信息都没有告诉我们,因为它只是定义了一个抽象的 Int。而且我们在绝大多数情况下,都不会关心 Haskell 的类型在内存里占了多少。

在这里插入图片描述

大家可以看到,这几种不同的类型定义,其实会体现不一样的信息,这些信息也未必会有一个包含关系。因此,从工程的视角去看类型系统,其核心就在于 提供信息。类型系统提供的信息可以是给 程序员 的,也可以是给 编译器 的。

在这里插入图片描述

类型系统提供的信息可以用来辅助检查我们程序的错误。换句话说,如果给一个 CoreID 赋值的时候不符合它的类型系统约束,那么类型检查工具就可以告诉我们这里可能使用了一个非法的 CPU 核。正如下图所示。

在这里插入图片描述

类型系统的重要性不言而喻

对编译器而言

进一步展开刚才的话题。类型系统可以给编译器提供信息:

类型系统可以让编译器能够检查出更多的问题,减少程序在运行中的错误。 Rust 就是一个很好的例子,它有一个强大的类型系统,可以很大程度上规避掉一些常见的内存安全问题。

类型系统还可以带给程序员更好的抽象机制。 比如 Haskell 和 OCaml 的函子(Functors)和模块(Modules),C++ 和 Java 中的泛型(Generic Types)。

类型系统还可以带给我们更好的性能。 当编译器能够推导出更多的东西,我们就可以在编译期做更多的优化。这其实是我们更看重的作用。

对开发者而言

从工程的角度来说,我们在很大程度上还看重类型系统给程序员(或者开发者)所提供的信息,这些信息也表现在两个层面

类型系统对于代码的可读性和可维护性的提升。

但并不总是这样的。大家可以看下面这段从 Coq(一个非常著名的证明系统,用 OCaml 实现)里截取的代码。类型系统还有一个很大的作用,就是提供类型的自动推导功能,让程序员可以少写很多参数。但大家在看到这段代码时,是很难一眼看懂这个程序到底写了什么,因为所有的变量都没有任何的类型,如果没有更大的上下文,那我们就不知道这个程序到底想要干什么。

...
and mimick_undefined_evar evd flags hdc nargs sp =let ev = Evd.find_undefined evd sp inlet sp_env = reset_with_named_context (evar_filtered_hyps ev) env inlet (evd', c) = applyHead sp_env evd nargs hdc inlet (evd'',mc,ec) =unify_0 sp_env evd' CUMUL flags(get_type_of sp_env evd' c) ev.evar_concl inlet evd'''= w_merge_rec evd'' mc ec [] inif evd'== evd'''then Evd.define sp c evd'''else Evd.define sp (Evarutil.nf_evar evd'''c) evd''' in

另外,类型系统在团队协作时还可以作为一个交流的接口而存在。 当我们看到其他人定义的类型和接口封装时,我们其实可以大体理解这个程序要做什么,所以我们可以不用去过分关注类型内部具体的实现。

如何定义一个好的类型系统

前面所讲的类型系统的作用,可以归结到很多个优点,包括可靠性,开发效率,性能,以及团队协作等。

在这里插入图片描述

但是,天下没有免费的午餐,类型系统也没有十全十美的设计。当我们去设计一个类型系统的时候,会有包括 表达能力 Expressiveness可判定性 Decidable用户易用程度 User-Fridenly 等多方面的考虑。

比如 C 和 Go 语言,用户用起来不是很困难,但是其表达能力相应地也比较弱。而像 Coq 和 RefinedC 2 发表在 PLDI 2021,官网:https://plv.mpi-sws.org/refinedc/),虽然表达能力很强,但它是不可判定的。Haskell 和 Rust 的表达能力很强,同时也是可判定的,但它对用户或者说对大多数人来说不是特别友好。

在这里插入图片描述

所以,类型系统是否足够好,或者说是否适合我们使用,其实有多个判断维度。作为一个开发者,我总是希望在我自己的场景里,能够有一个合乎这个场景的类型系统,即能够在这三个方面找到平衡。包括 refinement type 也是,到底在什么场景下,对我们的帮助是最大的,最合乎时宜的。

但是,这个问题没有答案,因为这个问题是非常领域特定的。接下来,我会给大家分享一个我们实际的例子,即在某一个项目开发场景中,我们是如何使用以及定制 Python 类型系统的。

Python 类型系统

接下来,进入到今天分享的第二部分,一个既不 sound 也不 complete 的 Python 类型系统,以及我们是如何将它应用到一个大型项目中?

在这里插入图片描述

知乎上有这样一个问题,很多人认为在大型项目上,Python 并不是一个很好的语言,但我个人认为这是一个值得商榷的问题。

在这里插入图片描述

项目背景

我有一个真实的项目是做一个形式化验证工具,这个工具要对上层的 C/C++ 实现内核、驱动或者一些库。我们需要将其变成一个中间层的验证语言,基于这个语言去做很多不同的分析。

这个项目里包含三部分,第一部分是 语言前端。第二部分是 核心的框架,这部分会包含一个中间语言的实现(IVL)以及很多的分析工具,比如抽象解释,符号执行,代码自动生成,指针分析等。我们团队会基于这个框架去支撑各种的软件验证,包括一些 domain-specific 的静态分析,锁的分析,调用图分析,还有模型驱动设计、代码编译测试等很多不同的场景。

在这里插入图片描述

现在,我们需要关注中间这一层。中间这层需要有很多人协作,并且会提供给不同的领域做二次开发。这层框架的特点是:

不稳定 因为我们在持续开发。
对性能不敏感 不管是 SMT 求解器还是程序分析,这些工具本身都是特别重量级的。对于工具之上的这层框架(或者一个胶水语言)来说,它的性能到底好不好,其实并不是特别的敏感。
可靠性 在这个项目场景下,我们还非常关注框架的可靠性。作为一个形式化验证的工具,可靠性当然是必须的。

Python 的类型系统

因此,在这个大前提下,我们项目选择了 Python 作为框架的开发语言,因为 Python 生态比较好,开发起来比较快。具体原因这里就不展开讲了。

我们希望 Python 本身也要有很高的可靠性。

这个可能与大家日常理解的 Python 作为一个原型语言的开发模式有一定的违背,因此,我们利用了 Python 本身的类型系统。可能很多人不是特别的了解,Python 本身支持了 渐进式的类型系统 Gradual Typing 3,它允许我们一部分一部分地往程序里添加一些信息息。

具体原理是这样的,每一个程序里,除了原本描述程序行为的部分,还包括一些类型标注。这里的类型标注就与我们在 C/Haskell/Ocaml 中所写的类型声明并无二致。而不同的是,Python 的类型标注不会在执行环境中体现,等于说这个类型系统是没有语义。 但是它会有一个工具将这个类型系统单独抽出来,交给类型检查器(Type Checker)里去进行检查。之后我们根据检查结果对源代码进行修改。

那么,我们就可以先写一个不带类型标注的程序,编译运行成功后,再慢慢地将类型添加到代码中,将代码里很多的 corner case 通过工具检查来干掉。

在这里插入图片描述

所以,这样的一个类型系统会有什么样的特点呢?

  • 首先,这个类型系统 对性能没有提升,因为它根本就不带入运行时。
  • 其次,我们的 开发过程与类型标注(或者说类型的开发) 可以是完全拆分开来进行。
  • 这个类型系统本身的 演进可以特别快。类型系统语义,和编程语言的执行语义是两件事情。所以类型系统的特性跟编程语言的特性互不影响,可以分别进行迭代。

Python 类型系统演进

给大家简单介绍一下我们所看到的 Python 类型系统的演进过程。(部分总结来自于知乎用户 @Manjusaka)

Python 最早的类型系统的标注是在 PEP 3107 —— 函数注解 4 里提出的,以冒号 : 的形式给函数参数添加类型注释。但是 Python 编译器并未增加类型检查,若类型使用错误,编译器也不会报错,我们甚至可以将下面代码中参数 a 的类型标注为一个字符串。(你可以通过 mypy 库来检验最终代码是否符合注解。)
在这里插入图片描述
后来 PEP 484 – 类型提示 5PEP 526 – 变量注解语法 6,Python 的类型有了语义,我们可以对类型进行检查,也可以对函数里的变量进行标注。
在这里插入图片描述
PEP 557 – 数据类 7PEP 563 —— 推迟评估评类型注释 8 之后,Python 引入了数据类的概念(@dataclass),使得我们看到的这个 Python 的类,更接近于类似 C++/Java 等强类型语言的类型系统。同时 Python 也开始支持 recursive 的类型声明,即我们可以定义了一个链表类 LinkedList,这个链表类可以同时指向自己。

在这里插入图片描述

以上的这部分,从 PEP 3107 到 PEP 563 这部分的内容,基本上就是我们现在开发中主要会使用的东西。同时,如前面所提,Python 有一个渐进能力特别强的类型系统。

比如,在 PEP 593 – 灵活的函数和变量注解 9 里引入了类型注解,即 Python 允许我们为类型指定一个谓词,比如下面代码中的 T1 作为一个整数,其范围可以是 -10~5。Python 自此开始引入了 refinement type 的概念。
在这里插入图片描述
PEP 647 – 用户自定义的类型保护 10 ,Python 甚至引入了所谓的 type guards,即一个变量是不是属于一个类型,不仅可以由类型检查器来判定,甚至还可以由用户自己定义的一个类型或者函数来进行判定。这等于是由 Python 官方提供了一种可编程的类型系统,允许由开发者来自行对其改造。

在这里插入图片描述

Python 的类型系统演进,可以映射回刚才我们提到的三个概念。一是 Python 的类型系统对用户特别友好,因为它用起来很简单,可改造性非常强。此外,Python 表达能力也非常强。但是这个类型系统完全不 decidable,因为当你使用了这种非常高级的类型特性后,很多时候需要添加一些奇怪的类型声明或者类型推导的 hint,来告诉系统你这个类型是成立的。这是该类型系统的显著缺点。

渐进类型系统

但是瑕不掩瑜,对吧?当我们有了这些类型系统的特性之后,我们可以让一个 Python 的程序变成如下这样(这段代码是我刚接触 Python 时,当我需要写一个图时,我会这么写)。

class Graph:def __init__(self, vertexes, edges):self.vertexes = vertexesself.edges = edges

下面这段代码是我们现在团队开发的 Python 程序里,当我去写一个图的时候,我是这么去写的。首先,我们定义了一个类型变量 T(这个类型变量可以认为与 OCaml 里的 t'-> Graph.t' 这样的参数化类型)。Graph 本身可以是一个 Generic[T],即可以接受任何类型的 T 作为它的节点,但这个节点必须要是 Hashable 的。这时,我们就可以为图里的节点和边去做如下这样的类型标注,这时候 T 就变成了一个可以在很多场景下复用,并且可以去做类型检查的类型。

T = TypeVar('T', bound=Hashable)@dataclass
class Graph(Generic[T]):vertexes: List[T]edges: Dict[T, List[T]]

那么,为什么我很喜欢这个渐进类型系统呢?这有一个非常工程的原因。下面三个图表示了当我们面对三种不同的类型系统下的开发状态。

这个图就是在一个原始的 Python 里,即真正的弱类型系统里(或者说没有编译时的弱类型系统里),我们去做开发时,往往能够非常快就写出一个原型,但这个原型可能需要特别久的时间才能到达稳定,即真正能够交付的点。在这个过程中,我们需要反复迭代,添加各种测试和代码 review 来确保它的可靠性。

在这里插入图片描述

下图就是现在我们在使用 Rust 或者 Haskell 这类语言开发时的开发状态。我们可能需要花很长时间才能让开发的原型类型检查都编译通过(前提是不用 unsafe)。但当我们一旦有了编译通过的原型后,我们距离稳定可交付,就是一件很快的事情了。

在这里插入图片描述

当我们在用渐进类型系统的时候,这个过程会是,我们很快开发出一个原型,给原型加类型标注,在类型标注中排除各种 corner cases 的错误。并且我们可以在一个相对可控的时间里获得一个比较稳定的版本。

在这里插入图片描述

使用 Trait 提高协作

在前面的基础上,我们的类型系统相对可靠了,开发效率也比较高。但其实还有一个问题没有搞定(当然,在我们的场景下,类型系统的性能可以不关注),就是并不方便进行 协作

  • Reliability
  • Dev Efficiency
  • Performance ($¥)
  • Collaboration

下面我们以一个场景来说明。假如现在有一个团队来开发库 A,另外一个团队想要使用库 A 并进行扩充。出于很多原因,第一个团队可能并不希望对 A 的扩充直接进入到开发主线(比如这些扩充包含了领域特定的内容)。

在这里插入图片描述

这个时候,我们可以看到有很多语言的类型系统,有他们自己的解决方案。

比如说在 JavaScript 里,我们可以直接通过修改一个类的 prototype 给这个类注入一些特性。

function Person(name) {this.name = name
}p = Person("foo")Person.prototype.sayhi = function (this) { console.log(this.name) }
p.sayhi() // foo

Rust 有一个 traitimpl 的语法特性。trait 我们可以理解为是一种特性,我们可以在另外一个库中以非侵入式的的方式,给已经定义好的类型添加新的特性(如下面代码中通过 traitPerson 类型新增 sayhi() 的特性),并且(通过 impl)提供实现。这个过程完全不会影响原有库的代码。

pub struct Dog {pub nickname: String,}pub trait Person {fn sayhi(&self);
}impl Person for Dog {fn sayhi(&self) { println!("{}\n", self.nickname) }
}

在我看来,Rust 的 traitimpl 是特别优雅的语法特性,所以我们想把 trait 引入到 Python 里实现。

在 Python 里实现 Trait

我们实际上做了什么呢?

首先结果如下面代码所示,我们在第一个包里(package A)定义了一个抽象的类型 Animal,这个类型实现了一个东西叫做 TraitHub,这意味着我们可以通过 TraitHubclass Animal 进行扩充。

然后在第二个包里(package B),定义一个 trait 叫做 Person,这个 trait 可以 sayhi()(你可以将其理解为 Java 或者 Go 的一个接口,或者 Rust 里的一个 trait)。我们把这个 trait 再通过 class DogIsPerson 来实现。

# package A
class Animal(TraitHub):pass@dataclass
class Dog(Animal):nickname: str# package B
class Person(Trait):def sayhi(self):passclass DogIsPerson(Dog, Person):def sayhi(self):print(self.nickname)

在这个过程中,作为一个程序员,我们看到的是如下这样的类图。我们有一个 DogIsPerson 类,同时实现了 DogPerson。那么我们的预期是希望 DogIsPerson 类可以将它的特性注入回 Dog 类中。

在这里插入图片描述

作为 Python 的执行环境,看到的是如下的类图。通过这个 trait(我们实现为一个插件的形式)我们可以把 Dog 类反馈去寻找 DogIsPerson 类,并且把方法动态地从 DogIsPerson 里拷贝到 Dog 类中。那么,此时 Dog 类也拥有了 sayhi() 的方法。狗会说话了。

在这里插入图片描述

到此为止,我们还是没法做类型检查,因为这段代码确实可以跑,但是一旦调用这个方法时,类型检查系统就会告诉我们没有这个方法。因此,我们还去开发了类型系统的扩充,即一个类型检查器插件,这个插件能够看到 Dog 类型是 DogIsPerson 的一个子类。当然这在实际上是不存在的,这是我们插件做的一个 cheat,我们欺骗了他的类型检查器,告诉他说 DogDogIsPerson 的一个子类,从而让类型检查器能够观察到 sayhi() 这个方法,那么类型检查就不会报错。

在这里插入图片描述

这表示,我们仍然可以将整个工具无损地集成到 Python 类型检查的流程中,而且不需要特地屏蔽一些特例。我们将这个功能实现为一个 mypy 插件和 Python 运行时的一部分,并且没有对 Python 自己的 interpreter 做任何的修改。

基于此,我们成功地达成了无侵入式对 Python 类型系统的修改,最后使得我们在 协作 这一项上也补齐了,我们在自己项目的场景里,将 Python 的类型系统改造成了同时符合下面的三个特性。当然我们不关心性能,没有银弹,我们也牺牲了很多东西。

  • Reliability
  • Dev Efficiency
  • Performance ($¥)
  • Collaboration

写在最后

综上,我认为,类型系统其实与领域有非常强的绑定关系,如果我们的类型系统能够能够在某一些领域里面产生很好的效果,那这个类型系统就可能会有一个很大的成功。

以上就是我的分享,欢迎大家一起交流。

参考


  1. LiquidHaskell https://ucsd-progsys.github.io/liquidhaskell-blog ↩︎

  2. Michael Sammler, Rodolphe Lepigre, Robbert Krebbers, Kayvan Memarian, Derek Dreyer, and Deepak Garg. 2021. RefinedC: automating the foundational verification of C code with refined ownership types. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2021). Association for Computing Machinery, New York, NY, USA, 158–174. DOI: https://doi.org/10.1145/3453483.3454036 ↩︎

  3. Gradual Typing - Wikipedia https://en.wikipedia.org/wiki/Gradual_typing ↩︎

  4. PEP 3107 – Function Annotations https://www.python.org/dev/peps/pep-3107/ ↩︎

  5. PEP 484 – Type Hints https://www.python.org/dev/peps/pep-0484/ ↩︎

  6. PEP 526 – Syntax for Variable Annotations https://www.python.org/dev/peps/pep-0526/ ↩︎

  7. PEP 557 —— Data Classes https://www.python.org/dev/peps/pep-0557/ ↩︎

  8. PEP 563 – Postponed Evaluation of Annotations https://www.python.org/dev/peps/pep-0563/ ↩︎

  9. PEP 593 – Flexible function and variable annotations https://www.python.org/dev/peps/pep-0593/ ↩︎

  10. PEP 647 – User-Defined Type Guards https://www.python.org/dev/peps/pep-0647/ ↩︎

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 60岁代码匠的几篇小作文,解决了大多数程序的迷茫(上)

    陈德伟 | 译 不熟悉计算机底层原理&#xff0c;我能走多远&#xff1f;30 了&#xff0c;会被裁吧&#xff1f;到底学哪门编程语言更有前&#xff08;钱&#xff09;途&#xff1f; …… 裁员大潮&#xff0c;行业高度内卷带来的焦虑迫使我们总是重复面对以上问题&#xff0c;它…...

    2024/4/14 17:52:22
  2. 口令破解(web安全入门07)

    一、口令破解 1.1 口令安全概述 现在很多地方以用户名&#xff08;账户&#xff09;和口令&#xff08;密码&#xff09;作为鉴权的方式&#xff0c;口令&#xff08;密码&#xff09;就意味着访 问权限。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等。 1.2 口令安…...

    2024/4/20 15:15:00
  3. Windows10下QT6(C++)+OpenCV4环境配置及安装

    参考博主文章Windows10下QT6.0(C)OpenCV4环境配置及安装 我的步骤与博主大体相同&#xff0c;只是做出了部分修改 1. 安装Qt 下载安装QT6&#xff1a; 下载QT6在线安装程序&#xff0c;得到可执行文件后&#xff0c;双击进行安装。安装过程都是一些常规的&#xff0c;选择你自…...

    2024/4/14 17:53:08
  4. nodes are available: 1 node(s) had taints that the pod didn‘t tolerate

    首先、异常的发现 Troubleshooting was easy... kubectl describe node <node> revealed the taint, and figuring out the required configuration change was simple. $ kubectl get nodes …...

    2024/4/14 17:53:03
  5. ElasticSearch学习

    ElasticSearch ElasticSearch是一个基于Lucene的搜索服务器 •是一个分布式、高扩展、高实时的搜索与数据分析引擎 •基于RESTful web接口 •Elasticsearch是用Java语言开发的&#xff0c;并作为Apache许可条款下的开放源码发布&#xff0c;是一种流行的企业级搜索引擎 2.…...

    2024/4/16 7:42:03
  6. too many files open ftp(并发下载坑) 记录一次宕机

    1、问题排查&#xff08;如果没有什么相关工具可用&#xff0c;就比如我不知道用什么插件来排查&#xff0c;这就需要对业务了解&#xff09; 查看某个进程下打开文件数量&#xff0c;虽可以设置文件打开数量&#xff0c;但不治本。 是因为并发太多的原因吗&#xff0c;修改核…...

    2024/4/18 1:21:06
  7. gdb调试c/c++程序使用说明【简明版】

    启动命令含参数&#xff1a; gdb --args /home/build/***.exe --zoom 1.3 Tacotron2.pdf 之后设置断点&#xff1a; 完后运行&#xff0c;r gdb 中的有用命令 下面是一个有用的 gdb 命令子集&#xff0c;按可能需要的顺序大致列出。 第一列给出了命令&#xff0c;可选字符括…...

    2024/4/19 1:11:28
  8. 网上商城实训

    实验目的&#xff1a; 结合前面6个实验&#xff0c;参照第10章“汽车用品网上商城”应用系统的展现&#xff0c;完整了解网上商城系统前台功能、后台功能&#xff0c;以及页面功能操作与数据库操纵之间的关系&#xff0c;充分理解数据库的核心作用&#xff0c;掌握面对实际应用…...

    2024/4/16 22:12:28
  9. 从零开始学前端:CSS背景颜色 --- 今天你学习了吗?(Day09)

    从零开始学前端&#xff1a;CSS背景颜色 — 今天你学习了吗&#xff1f;&#xff08;Day09&#xff09; 复习&#xff1a;从零开始学前端&#xff1a;CSS字体属性和文本属性 — 今天你学习了吗&#xff1f;&#xff08;Day08&#xff09; 文章目录从零开始学前端&#xff1a;C…...

    2024/4/14 17:53:23
  10. Junit5使用示例

    一、创建单元测试service 右键service->new->other->Junit Test Case->next 选择需要创建单元测试的方法或者直接点击finish 文章最后附上相关依赖 二、示例代码 // 取dev环境配置文件 ActiveProfiles("dev") // 指定启动类 SpringBootTest(classes …...

    2024/4/14 17:53:08
  11. 分布式Key/Value存储系统---Tair

    一、简述 tair 是淘宝高性能、可靠、可扩展的开源的分布式 Key/Value 存储系统。分为持久化和非持久化两种使用方式&#xff1a;非持久化的 tair 可以看成是一个分布式缓存&#xff1b;持久化的 tair 将数据存放于磁盘中。作为一个分布式系统&#xff0c;Tair 由一个中心控制节…...

    2024/4/18 13:59:08
  12. 《天道》经典语录

    所谓真经&#xff0c;就是能够达到寂空涅盘的究竟法门。可悟不可修。修为成佛&#xff0c;在求。悟为明性&#xff0c;在知。修行以行制性。悟道以性施行。觉者由心生律&#xff1b;修者以律制心&#xff0c;不落恶果者有信无证&#xff0c;住因住果&#xff0c;住念住心&#…...

    2024/4/16 15:22:55
  13. 2021跳槽必备——Android从初阶到架构师面试复习大纲,android组件化架构pdf

    关闭B Activity&#xff0c;分别执行B onPause()、A onRestart()、A onStart()、A onResume()、B onStop()、B onDestroy()方法。 横竖屏切换A Activity&#xff0c;清单文件中不设置android:configChanges属性时&#xff0c;先销毁onPause()、onStop()、onDestroy()再重新创建…...

    2024/4/14 17:52:58
  14. vscode配置

    {"window.zoomLevel": 1, //窗口.缩放级别"editor.tabSize": "4", //工作台主题颜色"typescript.updateImportsOnFileMove.enabled": "always","breadcrumbs.enabled": false, // 开启 vscode 文件路径导航// &qu…...

    2024/4/17 11:13:59
  15. 《Human Listening and Live Captioning:Multi-Task Training for Speech Enhancement》

    本篇文章的作者是Sefifik Emre Eskimez*, Xiaofei Wang*, Min Tang, Hemin Yang, Zirun Zhu&#xff0c;Zhuo Chen, Huaming Wang, Takuya Yoshioka&#xff0c;Microsoft, One Microsoft Way, Redmond, WA, USA 。 本篇文章主要是应用多任务实现听觉和现场字幕的应用&#xf…...

    2024/4/14 17:53:23
  16. 这份招标合同大全,招标人请收好

    第一类&#xff1a;明确需进行年度招标的合同 1、防水工程合同、消防工程合同、车库划线合同&#xff08;三级合同&#xff09; 类别&#xff1a;建安工程合同-分包工程合同 承办部门&#xff1a;造价采购部 职能组&#xff1a;招标及合同管理组 2、墙砖采购合同、电梯采购…...

    2024/4/14 17:53:18
  17. SpringBoot各种注解的作用汇总(学习笔记)

    SpringBoot各种注解的作用汇总&#xff08;学习笔记&#xff09; 一、基本注解 1. SpringBootApplication 申明让spring boot自动给程序进行必要的配置&#xff0c;这个配置等同于&#xff1a;Configuration &#xff0c;EnableAutoConfiguration 和 ComponentScan 三个配置…...

    2024/4/7 4:05:19
  18. 中国氧化染发剂市场现状研究分析与发展前景预测报告

    2021年中国氧化染发剂市场销售收入达到了 万元&#xff0c;预计2028年可以达到 万元&#xff0c;2022-2028期间年复合增长率(CAGR)为 %。中国市场核心厂商包括LOral、Henkel、Revlon、HOYU和Kao等&#xff0c;按收入计&#xff0c;2021年中国市场前三大厂商占有大约 %的市场份额…...

    2024/4/18 5:53:00
  19. vue3的Composition API入门(持续更新)

    目录 一、了解mixin 二、了解options API和vue composition APl的区别 三、了解setup 一、了解mixin 若组件和组件之间有相同的代码逻辑&#xff0c;可以用mixin抽取 mixin合并规则 ①返回的对象默认合并&#xff0c;如果data里面的值发生冲突&#xff0c;保留组件自身的数…...

    2024/4/14 17:52:58
  20. 消防设施操作员考试真题、模拟练习题库(10)

    题库来源&#xff1a;【学视线】公众号提供消防设施操作员考试试题、初级消防设施操作员考试预测题、中级消防设施操作员考试真题、高级消防设施操作员考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 101、下列不属于防火分隔物的是&…...

    2024/4/15 2:59:24

最新文章

  1. 【k8s】(八)kubernetes1.29.4离线部署之-测试验证

    &#xff08;一&#xff09;kubernetes1.29.4离线部署之-安装文件准备 &#xff08;二&#xff09;kubernetes1.29.4离线部署之-镜像文件准备 &#xff08;三&#xff09;kubernetes1.29.4离线部署之-环境初始化 &#xff08;四&#xff09;kubernetes1.29.4离线部署之-组件安装…...

    2024/4/26 17:59:34
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. linux进阶篇:磁盘管理(一):LVM逻辑卷基本概念及LVM的工作原理

    Linux磁盘管理(一)&#xff1a;LVM逻辑卷基本概念及LVM的工作原理 一、传统的磁盘管理 在传统的磁盘管理方案中&#xff0c;如果我们的磁盘容量不够了&#xff0c;那这个时候应该要加一块硬盘&#xff0c;但是新增加的硬盘是作为独立的文件系统存在的&#xff0c;原有的文件系…...

    2024/4/26 10:38:30
  4. GIS与数字孪生共舞,打造未来智慧场景

    作为一名数字孪生资深用户&#xff0c;近日我深刻理解到GIS&#xff08;地理信息系统&#xff09;在构建数字孪生体中的关键作用。 数字孪生技术旨在构建现实世界的虚拟镜像&#xff0c;而GIS则是这一镜像中不可或缺的空间维度框架和导航灯塔。数字孪生的核心是通过数字化方式…...

    2024/4/26 8:22:18
  5. ArcGIS10.8保姆式安装教程

    ArcGIS 10.8是一款非常强大的地理信息系统软件&#xff0c;用于创建、管理、分析和可视化地理数据。以下是ArcGIS 10.8的详细安装教程&#xff1a; 确保系统满足安装要求 在开始安装之前&#xff0c;请确保您的计算机满足以下系统要求&#xff1a; 操作系统&#xff1a;Windo…...

    2024/4/22 1:29:14
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/25 11:51:20
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/25 18:39:24
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/25 18:38:39
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/25 18:39:23
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/25 18:39:22
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/25 18:39:22
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/25 18:39:20
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/25 16:48:44
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/26 16:00:35
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/25 0:00:17
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/25 4:19:21
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/25 18:39:12
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/25 13:19:01
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/25 18:38:58
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/25 18:38:57
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57