synchronized 同步互斥锁

      • 1. synchronized 使用
        • 1.1 线程安全问题
        • 1.2 synchronized 概念
        • 1.3 synchronized 的作用范围
      • 2. synchronized 原理
        • 2.1 同步代码块
        • 2.2 同步方法
        • 2.3 monitor
          • 2.3.1 monitor 是什么
          • 2.3.2 monitor 如何实现线程同步
      • 3. 解决三大问题:原子性、可见性和有序性
        • 3.1 保证原子性
        • 3.2 保证有序性
        • 3.3 保证可见性
      • 4. synchronized 优化
        • 4.1 为什么要优化
        • 4.2 自旋锁和自适应自旋锁
          • 4.2.1 自旋锁
          • 4.2.2 自旋锁与阻塞的最大区别
          • 4.2.4 自旋锁优点
          • 4.2.4 自旋锁缺点
          • 4.2.5 自适应自旋锁
        • 4.3 锁消除
        • 4.4 锁粗化
        • 4.5 锁膨胀
          • 4.5.1 Java 对象头
          • 4.5.2 偏向锁、轻量级锁、重量级锁
            • 4.5.2.1 偏向锁
            • 4.5.2.2 轻量级锁
            • 4.5.2.3 重量级锁
          • 4.5.3 锁的膨胀升级
      • 4.6 总结

1. synchronized 使用

1.1 线程安全问题

  并发编程中,当多个线程同时访问同一个资源的时候,就会存在线程安全问题。

  由于每个线程执行的过程是不可控的,所以很可能导致最终的结果与实际期望的结果相违背或者直接导致程序出错。下面的代码,每执行一次 add10K() 方法,都会循环 10000 次 count+=1 操作。在 calc() 方法中我们创建了两个线程,每个线程调用一次 add10K() 方法,我们来想一想执行 calc() 方法得到的结果应该是多少呢?

public class Test {private long count = 0;private void add10K() {int idx = 0;while(idx++ < 10000) {count += 1;}}public static long calc() {final Test test = new Test();// 创建两个线程,执行 add() 操作Thread th1 = new Thread(()->{test.add10K();});Thread th2 = new Thread(()->{test.add10K();});// 启动两个线程th1.start();th2.start();// 等待两个线程执行结束th1.join();th2.join();return count;}
}

  如上面程序,直觉告诉我们应该是20000,因为在单线程里调用两次add1OK()方法,但实际的结果是10000-20000之间的随机数。为什么呢?

  java并发程序都是基于多线程的,自然也就会涉及到任务切换,任务切换的时机大多数都是在时间片结束的时候,我们现在基本都使用高级语言编程,高级语言里的一条语句往往需要多条CPU指令完成,如count += 1,至少需要三条CPU指令。

  • 指令1:首先,需要把变量count从内存加载到CPU寄存器;
  • 指令2:之后,在寄存器中执行+1操作;
  • 指令3:最后,将结果写入内存(缓存机制导致可能写入的是CPU缓存而不是内存)。

  操作系统做任务切换,可以发生在任何一条CPU指令执行完,注意是CPU指令,而不是高级语言里的一条语句。对于上面三条指令来说,我们假设count=0,如果线程A在指令1执行完后做线程切换,线程A和线程B按照下图的序列执行,那么两个线程都执行了count +=1的操作,得到的结果不是我们期望的2,而是1。

基本上所有的并发模式在解决线程安全问题时,都采用“序列化访问临界资源”的方案,即在同一时刻,只能有一个线程访问临界资源,也称作同步互斥访问。
通常来说,是在访问临界资源的代码前面加上一个锁,当访问完临界资源后释放锁,让其他线程继续访问。
在Java中,提供了两种方式来实现同步互斥访问:synchronized和Lock。

  

1.2 synchronized 概念

  synchronized 它可以把任意一个非 NULL 的对象当作锁。他属于独占式的悲观锁,同时属于可重入锁。Synchronized 是非公平锁。每个对象都有个 monitor 对象,加锁就是在竞争 monitor 对象,代码块加锁是在前后分别加 上 monitorenter 和 monitorexit 指令来实现的,方法加锁是通过一个标记位来判断的。

  

1.3 synchronized 的作用范围

Synchronized 的作用范围如下:

  1. 普通同步方法,锁是当前实例对象;
  2. 静态同步方法,锁是当前类的class对象;
  3. 同步方法块,锁是括号里面的对象;
  4. 不能继承,父类的同步方法被子类重写后默认不是 synchronized 的,必须显示指定。
public class TestSynchronized {static int count;// 普通同步方法:锁的是当前实例对象public synchronized void add(int value) {count += value;}// 静态同步方法:锁的是当前类的 class 对象public static synchronized void add1(int value) {count += value;}// 同步代码块:锁的是当前实例对象(this)public void add3(int value) {synchronized (this) {count += value;}}// 同步代码块:锁的是当前类的 class 对象public void add4(int value) {synchronized (TestSynchronized.class) {count += value;}}
}

  

2. synchronized 原理

  上面的代码,利用 javap 工具查看生成的 class 文件信息来分析 Synchronized 的实现。

  javap 的命令:javap -v TestSynchronized.class,上面代码生成的反编译结果为:

在这里插入图片描述

同步方法
  

在这里插入图片描述

同步代码块
  

  从反编译的结果中可以看到:对于同步方法,JVM 采用 ACC_synchronized 标记符来实现同步;对于同步代码块,JVM 采用 monitorenter、monitorexit 两个指令来实现同步。

2.1 同步代码块

  JVM采用monitorenter、monitorexit 两个指令来实现同步。关于monitorenter 和 monitorexit 的介绍,大致如下:

  1. 可以把执行monitorenter指令理解为加锁,执行monitorexit理解为释放锁;
  2. 每个对象维护着一个记录着被锁次数的计数;
  3. 未被锁定的对象的该计数器为0,当一个线程获得锁(执行monitorenter)后,该计数器自增变为1,当同一个线程再次获得该对象的锁的时候,计数器再次自增。当同一个线程释放锁(执行monitorexit指令)的时候,计数器再自减;
  4. 当计数器为0的时候。锁将被释放,其他线程便可以获得锁。

  

2.2 同步方法

  对于同步方法,JVM 采用 ACC_synchronized 标记符来实现同步。关于同步方法的介绍,大致如下:

  1. 方法级的同步是隐式的。同步方法的常量池中会有一个ACC_synchronized标志;
  2. 当某个线程要访问某个方法的时候,会检查是否有ACC_synchronized,如果有设置,则需要先获得监视器锁(monitor),然后开始执行方法,方法执行之后再释放监视器锁。这时如果其他线程来请求执行方法,会因为无法获得监视器锁而被阻断住;
  3. 值得注意的是,如果在方法执行过程中,发生了异常,并且方法内部并没有处理该异常,那么在异常被抛到方法外面之前监视器锁会被自动释放。

  

2.3 monitor

  无论是同步方法还是同步代码块都是基于监视器Monitor实现的。

  

2.3.1 monitor 是什么

  所有的Java对象是天生的Monitor,每一个Java对象都有成为Monitor的潜质,因为在Java的设计中,每一个Java对象自打娘胎里出来就带了一把看不见的锁,它叫做内部锁或者Monitor锁。

  每个对象都存在着一个Monitor与之关联,对象与其Monitor之间的关系有存在多种实现方式,如Monitor可以与对象一起创建销毁。

  

2.3.2 monitor 如何实现线程同步

  在 Java 虚拟机(HotSpot)中,monitor 是由 ObjectMonitor 实现的(位于 HotSpot 虚拟机源码 ObjectMonitor.hpp 文件,C++ 实现的)。

ObjectMonitor中有几个关键属性:

  • _owner:指向持有ObjectMonitor对象的线程;
  • _WaitSet:存放处于wait状态的线程队列;
  • _EntryList:存放处于等待锁block状态的线程队列;
  • _recursions:锁的重入次数;
  • _count:用来记录该线程获取锁的次数。

在这里插入图片描述
Monitor 实现线程同步的过程如下:

  1. 线程 T 等待对象锁:_EntryList 中加入 T;
  2. 线程 T 获取对象锁:_EntryList 移除 T,_owner 置为 T,计数器 _count 加 1;
  3. 线程T中锁对象调用 wait() :_owner 置为 null,计数器 _count 减 1,_WaitSet中加入 T 等待被唤醒;
  4. 持有对象锁的线程T执行完毕:复位变量的值,以便其他线程进入获取monitor。

  

3. 解决三大问题:原子性、可见性和有序性

3.1 保证原子性

  在并发编程中的原子性:一个或者多个操作在 CPU 执行的过程中不被中断,也就是一段代码,或者一个变量的操作,在一个线程没有执行完之前,不能被其他线程执行。

  synchronized 修饰的代码在同一时间只能被一个线程访问,在锁未释放之前,无法被其他线程访问到。

即使在执行过程中,CPU 时间片用完,线程放弃了 CPU,但并没有进行解锁。而由于 synchronized 的锁是可重入的,下一个时间片还是只能被他自己获取到,还是会由同一个线程继续执行代码,直到所有代码执行完。从而保证 synchronized 修饰的代码块在同一时间只能被一个线程访问。

  

3.2 保证有序性

  单线程重排序要遵守 as-if-serial 语义,不管怎么重排序,单线程程序的执行结果都不能被改变。因为不会改变执行结果,所以无须关心这种重排的干扰,可以认为单线程程序是按照顺序执行的。

  synchronized 修饰的代码,同一时间只能被同一线程访问。那么也就是单线程执行的。所以,可以保证其有序性。

如果在本线程内观察,所有操作都是天然有序的。

  

3.3 保证可见性

JMM 关于 synchronized 的两条语义规定保证了可见性:

  • 线程解锁前,必须把共享变量的最新值刷新到主内存中
  • 线程加锁前,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值。

  这也是 Happens-Before 规则中的一部分:对一个锁的解锁 Happens-Before 可见于后续对这个锁的加锁。Happens-Before 规则详见《02 - Java内存模型:看 Java 如何解决可见性和有序性问题》

  

4. synchronized 优化

4.1 为什么要优化

  synchronized 监视器锁在互斥同步上对性能的影响很大。

  Java 的线程是映射到操作系统原生线程之上的,如果要阻塞或唤醒一个线程就需要操作系统的帮忙,这就要从用户态转换到内核态,状态转换需要花费很多的处理器时间。

  所以频繁的通过 synchronized 实现同步会严重影响到程序效率,这种锁机制也被称为重量级锁,为了减少重量级锁带来的性能开销,JDK 对synchronized 进行了种种优化。

  

4.2 自旋锁和自适应自旋锁

  大多数情况下,线程持有锁的时间都不会太长,为了这一段很短的时间频繁地阻塞和唤醒线程是非常不值得的。所以引入自旋锁。

  

4.2.1 自旋锁

  当锁被占用时,当前想要获取锁的线程不会被立即挂起,而是做几个空循环,看持有锁的线程是否会很快释放锁。

  在经过若干次循环后,如果得到锁,就顺利进入临界区;如果还不能获得锁,那就会将线程在操作系统层面挂起。

  

4.2.2 自旋锁与阻塞的最大区别

  主要区别:是不是放弃处理器的执行时间。阻塞放弃了CPU时间,进入了等待区,等待被唤醒。响应慢。自旋锁一直占用CPU时间,时刻检查共享资源是否可以被访问,所以响应速度更快。

  

4.2.4 自旋锁优点

  自旋锁尽可能的减少线程的阻塞,这对于锁的竞争不激烈,且占用锁时间非常短的代码块来 说性能能大幅度的提升,因为自旋的消耗会小于线程阻塞挂起再唤醒的操作的消耗,这些操作会 导致线程发生两次上下文切换。

4.2.4 自旋锁缺点

  如果锁的竞争激烈,或者持有锁的线程需要长时间占用锁执行同步块,这时候就不适合 使用自旋锁了,因为自旋锁在获取锁前一直都是占用 cpu 做无用功,占着 XX 不 XX,同时有大量 线程在竞争一个锁,会导致获取锁的时间很长,线程自旋的消耗大于线程阻塞挂起操作的消耗, 其它需要 cup 的线程又不能获取到 cpu,造成 cpu 的浪费。所以这种情况下我们要关闭自旋锁。

  所以自旋的次数直接决定了自旋锁的性能。JDK6 中-XX:+UseSpinning 开启,JDK自旋的默认次数为10次,可以通过参数-XX:PreBlockSpin来调整,在 JDK7 中去掉了该参数由 JVM 控制。

  

4.2.5 自适应自旋锁

  所谓自适应就意味着自旋的次数不再是固定的,它是由前一次在同一个锁上的自旋时间及锁的拥有者的状态来决定。线程如果自旋成功了,那么下次自旋的次数会更加多,因为虚拟机认为既然上次成功了,那么此次自旋也很有可能会再次成功,那么它就会允许自旋等待持续的次数更多。

  如果对于某个锁,很少有自旋能够成功的,那么在以后要或者这个锁的时候自旋的次数会减少甚至省略掉自旋过程,以免浪费处理器资源。

  有了自适应自旋锁,随着程序运行和性能监控信息的不断完善,虚拟机对程序锁的状况预测会越来越准确,虚拟机会变得越来越聪明。

  

4.3 锁消除

  如果JVM检测到某段代码不可能存在共享数据竞争,JVM会对这段代码的同步锁进行锁消除。

  在动态编译同步块的时候,JIT编译器可以借助一种被称为逃逸分析(Escape Analysis)的技术来判断同步块所使用的锁对象是否只能够被一个线程访问而没有被发布到其他线程。

  如果同步块所使用的锁对象通过这种分析被证实只能够被一个线程访问,那么JIT编译器在编译这个同步块的时候就会取消对这部分代码的同步。

public void test() {Vector<Integer> vector = new Vector<>();for (int i = 0; i < 10; i++) {vector.add(i);}System.out.println(vector);}

  Vector 的 add() 方法是 synchronized 修饰的。在运行这段代码时,JVM 可以明显检测到变量 vector 没有逃逸出方法 test() 之外,所以 JVM 可以大胆地将 vector 内部的加锁操作消除。

  

4.4 锁粗化

  很多时候,我们提倡尽量减小锁的粒度,可以避免不必要的阻塞。 让同步块的作用范围尽可能小,仅在共享数据的实际作用域中才进行同步,如果存在锁竞争,那么等待锁的线程也能尽快拿到锁。

  但是如果在一段代码中连续的用同一个监视器锁反复的加锁解锁,甚至加锁操作出现在循环体中的时候,就会导致不必要的性能损耗,这种情况就需要锁粗化。

  锁粗化就是将多个连续的加锁、解锁操作连接在一起,扩展成一个范围更大的锁。如下面的例子:

for (int i = 0; i < 10000; i++) {synchronized (this) {System.out.println(i);}}

会被粗化成下面的代码:

synchronized (this) {for (int i = 0; i < 10000; i++) {System.out.println(i);}
}

  

4.5 锁膨胀

4.5.1 Java 对象头

  对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)

  普通对象的对象头包括两部分:Mark Word 和 Class Metadata Address (类型指针),如果是数组对象还包括一个额外的 Array length 数组长度部分。

  Mark Word:用于存储对象自身的运行时数据,如哈希码(HashCode)、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳等等,占用内存大小与虚拟机位长一致。

   Class Metadata Address:类型指针指向对象的类元数据,虚拟机通过这个指针确定该对象是哪个类的实例。

   下图描述了在 32 位虚拟机上,在对象不同状态时 mark word 各个比特位区间的含义。

在这里插入图片描述

  

4.5.2 偏向锁、轻量级锁、重量级锁

  从Java对象头的Mark word中可以看到,synchronized锁一共具有四种状态:无锁、偏向锁、轻量级锁、重量级锁。

  偏向锁、轻量级锁、重量级锁三种形式,分别对应了锁只被一个线程持有、不同线程交替持有锁、多线程竞争锁三种情况。

  

4.5.2.1 偏向锁

  目的:大多数情况下锁不仅不存在多线程竞争,而且总是由同一个线程多次获取,所以引入偏向锁让线程获得锁的代价更低。

  偏向锁认为环境中不存在竞争情况,锁只被一个线程持有,一旦有不同的线程获取或竞争锁对象,偏向锁就升级为轻量级锁。

  偏向锁在无多线程竞争的情况下可以减少不必须要的轻量级锁执行路径。

  

4.5.2.2 轻量级锁

  目的:在大多数情况下同步块并不会出现竞争情况,大部分情况是不同线程交替持有锁,所以引入轻量级锁可以减少重量级锁对线程的阻塞带来的开销。

  轻量级锁认为环境中线程几乎没有对锁对象的竞争,即使有竞争也只需要稍微等待(自旋)下就可以获取锁,但是自旋次数有限制,如果超过该次数,则会升级为重量级锁。

  

4.5.2.3 重量级锁

  监视器锁 Monitor

  

4.5.3 锁的膨胀升级

  synchronized锁膨胀过程就是无锁 → 偏向锁 → 轻量级锁 → 重量级锁的一个过程。这个过程是随着多线程对锁的竞争越来越激烈,锁逐渐升级膨胀的过程。

  如下分析,从一个没有线程访问的锁逐渐升级到重量级锁的过程:

    1)一个锁对象刚刚开始创建的时候,没有任何线程来访问它,此时线程状态为无锁状态。Mark word(锁标志位-01 是否偏向-0);

    2)当线程 A 来访问这个对象锁时,它会偏向这个线程A。线程 A 检查 Mark word(锁标志位-01 是否偏向-0)为无锁状态。此时,有线程访问锁了,无锁升级为偏向锁,Mark word(锁标志位-01,是否偏向-1,线程 ID-线程 A 的 ID);

    3)当线程 A 执行完同步块时,不会主动释放偏向锁。持有偏向锁的线程执行完同步代码后不会主动释放偏向锁,而是等待其他线程来竞争才会释放锁。Mark word 不变(锁标志位-01,是否偏向-1,线程 ID-线程 A 的ID);

    4)当线程 A 再次获取这个对象锁时,检查 Mark word(锁标志位-01,是否偏向-1,线程 ID-线程 A 的 ID),偏向锁且偏向线程 A,可以直接执行同步代码。这样偏向锁保证了总是同一个线程多次获取锁的情况下,每次只需要检查标志位就行,效率很高;

    5)当线程 A 执行完同步块之后,线程 B 获取这个对象锁检查 Mark word(锁标志位-01,是否偏向-1,线程ID-线程 A 的 ID),偏向锁且偏向线程 A。有不同的线程获取锁对象,偏向锁升级为轻量级锁,并由线程 B 获取该锁;

    6)当线程 A 正在执行同步块时,也就是正持有偏向锁时,线程 B 获取来这个对象锁。检查 Mark word(锁标志位-01,是否偏向-1,线程ID-线程 A 的 ID),偏向锁且偏向线程A。

    线程A撤销偏向锁:
1. 等到全局安全点执行撤销偏向锁,暂停持有偏向锁的线程 A 并检查线程 A 的状态;

      2. 如果线程 A 不处于活动状态或者已经退出同步代码块,则将对象锁设置为无锁状态,然后再升级为轻量级锁。由线程 B获取轻量级锁。

      3. 如果线程 A 还在执行同步代码块,也就是线程 A 还需要这个对象锁,则偏向锁膨胀为轻量级锁。

    线程A膨胀为轻量级锁过程:
1. 在升级为轻量级锁之前,持有偏向锁的线程(线程 A )是暂停的;

      2. 线程 A 栈帧中创建一个名为锁记录的空间(Lock Record);

      3. 锁对象头中的 Mark Word 拷贝到线程A 的锁记录中;

      4. Mark Word 的锁标志位变为 00,指向锁记录的指针指向线程 A 的锁记录地址,Mark word(锁标志位-00,其他位-线程A锁记录的指针);

      5. 当原持有偏向锁的线程(线程 A )获取轻量级锁后,JVM唤醒线程A,线程 A 执行同步代码块。

    7)线程 A 持有轻量级锁,线程 A 执行完同步块代码之后,一直没有线程来竞争对象锁,正常释放轻量级锁。释放轻量级锁操作:CAS 操作将线程A的锁记录(Lock Record)中的 Mark Word 替换回锁对象头中。

    8)线程 A 持有轻量级锁,执行同步块代码过程中,线程B来竞争对象锁。Mark word(锁标志位-00,其他位-线程A锁记录的指针)

      1. 线程 B 会先在栈帧中建立锁记录,存储锁对象目前的 Mark Word 的拷贝;

      2. 线程 B 通过 CAS 操作尝试将锁对象的 Mark Word 的指针指向线程 B 的 Lock Record,如果成功,说明线程 A 刚刚释放锁,线程 B 竞争到锁,则执行同步代码块;

      3. 因为线程 A 一直持有锁,大部分情况下 CAS 是会失败的。CAS 失败之后,线程B尝试使用自旋的方式来等待持有轻量级锁的线程释放锁;

      4. 线程 B 不会一直自旋下去,如果自旋了一定次数后还是失败,线程 B 会被阻塞,等待释放锁后唤醒。此时轻量级锁就会膨胀为重量级锁。Mark word(锁标志位-10,其他位-重量级锁 monitor 的指针);

      5. 线程 A 执行完同步块代码之后,执行释放锁操作,CAS 操作将线程A的锁记录(Lock Record)中的 Mark Word 替换回锁对象对象头中,因为对象头中已经不是原来的轻量级锁的指针了,而是重量级锁的指针,所以 CAS 操作会失败。

      6. 释放轻量级锁 CAS 操作替换失败之后,需要在释放锁的同时需要唤醒被挂起的线程 B。线程 B 被唤醒,获取重量级锁monitor。

  

4.6 总结

  多并发编程中通过同步互斥访问临界资源来解决线程安全问题,Java中常用 synchronized 标记同步块达到加锁的目的。synchronized 用法有两种,修饰方法和修饰同步代码块。

   synchronized 的实现原理:每一个 Java 对象都会关联一个Monitor,通过 Monitor 对线程的操作实现 synchronized 对象锁。并发编程中synchronized 可以保证原子性、可见性、有序性。

  synchronized 实现同步会严重影响到程序效率,为了减少重量级锁带来的性能开销,JDK 对 Synchronized 进行了优化。

  自旋锁:当锁被占用时,当前想要获取锁的线程不会被立即挂起,而是做几个空循环,看持有锁的线程是否会很快释放锁。如果此时锁释放,当前线程就可以获得锁。

  锁消除:如果 JVM 检测到某段代码不可能存在共享数据竞争,会对这段代码的同步锁进行锁消除。

  锁粗化:将多个连续的加锁、解锁操作连接在一起,扩展成一个范围更大的锁。

  偏向锁、轻量级锁、重量级锁三种形式,分别对应了锁只被一个线程持有、不同线程交替持有锁、多线程竞争锁三种情况。

  synchronized 锁膨胀过程就是无锁 → 偏向锁 → 轻量级锁 → 重量级锁的一个过程。这个过程是随着多线程对锁的竞争越来越激烈,锁逐渐升级膨胀的过程。

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

相关文章

  1. python生成器的原理和业务场景下的使用

    最近接触到了python生成器的具体使用场景,很有必要对之进行总结,下面就python生成器的原理和业务场景下的使用做一个简单的分析和记录。目录一、什么是生成器二、生成器的实现和优点2.1生成器表达式2.2生成器函数2.3 生成器的优点三、生成器的应用实战四、可迭代对象、迭代器…...

    2024/5/7 15:21:16
  2. (刷题笔记) Leetcode 70.爬楼梯

    目录题目解题思路代码(C++) 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶示例 …...

    2024/4/14 20:45:00
  3. Java实现递归及经典案例(不死神兔三种方式)

    Java实现递归及经典案例本文简单介绍了递归的概念和使用递归时的注意事项,并分享了求阶乘案例(两种方式)、不死神兔案例(三种方式)以及利用递归删除一个带内容的文件的案例;文章目录Java实现递归及经典案例1. 递归简介2. 阶乘案例2.1 循环方式2.2 递归方式3. 不死神兔案例…...

    2024/4/18 19:29:28
  4. Python socket 粘包

    socket粘包:   socket 交互send时,连续处理多个send时会出现粘包,soket会把两条send作为一条send强制发送,会粘在一起。 send发送会根据recv定义的数值发送一个固定的数值,如果最后一次,所剩的数值小于recv定义数就会连带两条send数据同时发送,发生粘包状况。 解决方案…...

    2024/5/7 18:59:48
  5. 第一章:J2EE入门-C/S项目和B/S项目介绍

    C/S项目和B/S项目介绍 1、C/S项目 1)JavaSE(java standard edition) -----------》》jdk(1.6,1.7,1.8,1,9) 2)JDBC(Sun公司推出的用于管理数据库的规范接口) Oracle -------》大型企业 Mysql -------》互联网行业 3)目的:做C/S…...

    2024/4/25 0:13:11
  6. Diamond中间件

    个人理解:这个中间件,主要是用来进行配置更改的实时更新,而且是动态的,也就是说可以在不停下项目运转的情况下对项目的配置进行更新,这样就可以更好的进行项目的更新。用另一种话来说,就是可以不进行停服更新~~~~Diamond简介Diamond是淘宝内部广泛使用的配置中心,提供持…...

    2024/4/25 0:13:10
  7. 如何增加博客访问量(一)

    如何增加博客访问量(一) 如何增加博客访问量? 自己动手,丰衣足食(即答 代码: package java_xer;import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.Hash…...

    2024/4/25 0:13:09
  8. Spring cloud Feign + Hystrix 原理(一)

    Spring cloud Feign + Hystrix 原理(一) Netflix Hystrix已经停止更新目前处于维护状态,在SpringCloud中对服务的调用通常是用feign完成的,如果同时想使用hystrix做熔断则只需如下配置就可以完成(前提已经引入了feign相关依赖)引入springcloud hystrix starter 依赖 在appli…...

    2024/4/25 0:13:11
  9. 聚合导航网站

    前言今天端午节给大家分享小木珍藏多年的神一般的网址,它将集影视网站、影视APP、磁力、网盘搜索、浏览器扩展插件等为一体的,丰富网站于300个以上。聚合网站该导航网站手机、电脑都可以使用,分类十分全,操作指引简单,左边的导航栏分类非常明确;有在线影视、磁力搜索、磁…...

    2024/5/3 12:55:22
  10. MySQL8版本密码重置

    MySQL8版本密码重置 参考链接:https://blog.csdn.net/qq_37512323/article/details/89046565...

    2024/4/25 0:13:06
  11. 微信小程序一个简单聊天室

    cha.js // pages/chat/chat.js // 获取小程序实例 let app = getApp(); Page({/*** 页面的初始数据*/data: {nickname:,avatar:,chatlists:[{nickname:小林,avatar:https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591617971938&di=30…...

    2024/4/25 0:13:05
  12. PAT-乙级 数素数 1013 (c语言)

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h>int main(void) {int test_num = 2; int flag = 0; // 1既不是素数也不是合数,所以test_num =2int M=0, N=0;int target_num[1000] = {0}, i = 0;scanf("%d%d", …...

    2024/4/25 0:13:12
  13. 英伟达tx2刷机求助

    请问这是什么情况,刷机快崩溃了...

    2024/4/30 14:39:33
  14. C++ 中字符串类循环右移 - 函数-重载操作符

    #include <iostream> #include <string>//标准C++using namespace std;/* //已经实现 void swap(int& a, int& b) {int tmp = 0;tmp = a;a = b;b = tmp; }void string_sort(string a[], int len)//字符串排序 {for(int i=0; i<len; i++)int MinIndex …...

    2024/4/25 0:13:05
  15. 搭建WEB服务器+数据库

    上面是我创建的群聊,欢迎新朋友的加入。首先需要有个服务器,这个自己掏钱找个服务器就行。这个是我的云服务器安装Apache。Apache是web服务器软件,它可以运行在几乎所有的计算机平台上。由于其具有跨平台和安全性,所以被广泛使用,是最流行的Web服务器端软件之一。安装的命…...

    2024/4/25 0:13:01
  16. Leetcode 1455.检查单词是否为句中其他单词的前缀(Check If a Word Occurs As a Prefix of Any Word in a Sentence)

    Leetcode 1455.检查单词是否为句中其他单词的前缀 1 题目描述(Leetcode题目链接)给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。 请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchW…...

    2024/4/25 0:13:02
  17. Linux04-文件系统权限与ACL权限

    目录一、文件系统权限1.1、认识文件系统权限1.2、管理文件系统权限1.3、特殊权限1.4、默认权限二、ACL权限Linux中的权限管理分为两种类型用户自主访问控制(DAC=Discretionary Access Control),包括文件系统权限和ACL权限;强制访问控制(MAC=Mandatory Access Control),也…...

    2024/4/25 0:12:59
  18. 剑指offer(数组、查找)——二维数组的查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路: 从左下找 利用该二维数组的性质: 每一行都按照从左到右…...

    2024/4/25 0:12:59
  19. iOS开发遇到的坑之五--解决工程已存在plist表,数据却不能存入的问题

    iOS开发遇到的坑之五--解决工程已存在plist表,数据却不能存入的问题参考文章: (1)iOS开发遇到的坑之五--解决工程已存在plist表,数据却不能存入的问题 (2)http://www.cnblogs.com/wayneliu/p/4959515.html 备忘一下。...

    2024/4/25 0:13:04
  20. Java-项目-001-多人聊天带界面(界面利用可视化swt)

    Java-项目-001-多人聊天带界面(界面利用可视化swt)-2020-6-25 目录一、ClientApp.java二、ServerApp.java三、test.java 操作效果一、ClientApp.javaimport org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Label; im…...

    2024/4/14 20:45:09

最新文章

  1. springboot集成异步调用

    异步、同步 同步&#xff1a;在发出一个调用时&#xff0c;在得到调用结果之前&#xff0c;该调用不返回&#xff08;实时处理&#xff09;。----不相干的业务逻辑会阻塞一些核心的业务逻辑。 异步&#xff1a;在发出一个调用时&#xff0c;这个调用立刻返回&#xff0c;没有返…...

    2024/5/7 20:30:12
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/7 10:36:02
  3. 代码随想录算法训练营day32

    1005_K次取反后最大化的数组和&#xff08;看了题解&#xff09; 题目&#xff1a; 给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i…...

    2024/5/3 2:17:09
  4. C# 抽象类、接口

    &#xff08;1&#xff09;、抽象类和抽象方法的定义和实现&#xff1a;abstract override abstract class Vehicle{ public abstract void Run(); } 继承抽象类并且实现抽象方法 class RaceCar : Vehicle{ public override void Run(){ } } &#xff08;2&#xff09;、接口的…...

    2024/5/6 11:49:43
  5. [蓝桥杯 2014 省 A] 波动数列

    容我菜菲说一句&#xff0c;全网前排题解都是rubbish&#xff0c;当然洛谷某些也是litter 不好意思&#xff0c;最近背单词背了很多垃圾的英文&#xff0c;正题开始 [蓝桥杯 2014 省 A] 波动数列 题目描述 输入格式 输入的第一行包含四个整数 n , s , a , b n,s,a,b n,s,a…...

    2024/5/7 16:12:29
  6. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/7 5:50:09
  7. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/7 9:45:25
  8. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/7 14:25:14
  10. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

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

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/5/7 11:36:39
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

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

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

    2024/5/7 9:26:26
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/4 23:55:06
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/5/4 23:55:16
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/6 21:42:42
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/5/4 23:54:56
  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