LightRefBase 轻指针的实现原理

    • 前言
    • 1. 问题引出:指针的内存泄漏
    • 2. 解决思路:类的析构
    • 3. 新的问题:拷贝构造引发的重复析构错误
    • 4. 引入构造计数解决重复析构(类Java内存回收机制)
    • 5. 引入类模板来提高代码的可重用性
    • 6. 新的问题:线程安全性

前言

本文参考了百问科技韦东山先生C++课程中对于智能指针的讲解,在此基础上根据自己的理解,形成本文。特此说明。
正文中的所有源码可以从Github获取。

https://github.com/musiclspace/LightRefBase_Examples

1. 问题引出:指针的内存泄漏

与Java自带内存回收机制不同,C++使用new方法创建类的对象后,如果不执行delete函数,这个对象会一直保留在内存的HEAP区域,导致内存泄漏。
我们来看一个内存泄漏的简单实例:
首先声明一个类:

//Person.h
#ifndef PERSON_H
#define PERSON_H
#include <iostream>
class Person
{
public:Person();~Person();void showinfo(void);
};
#endif

然后实现这个类

//Person.cpp
#include "Person.h"
using namespace std;Person::Person()
{cout << "Person()" << endl;
}
Person::~Person()
{cout << "~Person()" << endl;
}
void Person::showinfo(void)
{cout << "showinfo()" << endl;
}

在main.cpp中创建这个类的指针

#include "Person.h"
void test_func(void)
{Person *p = new Person();p->showinfo();
}
int main(int argc, char **argv)
{int i;for(i = 0; i < 2;i++){test_func();}return 0;
}

然后编辑一个Makefile来编译

Person : main.o Person.og++ -o $@ $^
%o : %.cppg++ -o $@ -c $<
clean :rm -rf *.o Person

编译后的运行结果为:

Person()
showinfo()
Person()
showinfo()

由此可见调用了两次Person的构造函数来创建对象,但是执行完成后并没有调用类的析构函数。导致内存泄漏。原因是使用new方法创建的对象,位于内存的HEAP区域,而HEAP区域是不会像STACK区域那样结束自动回收的。

2. 解决思路:类的析构

我们需要考虑如何自动回收指针。一个可行的思路是将指向Person的这个指针,定义为另外一个类的数据成员,通过这个类来创建这个指针,这样类被销毁时,利用析构函数将指针回收。
于是我们重新定义一个sp类来实现这个功能

//sp.h
#ifndef SP_H
#define SP_H
#include "Person.h"
class sp
{Person *p;
public:sp();sp(Person * other);~sp();Person * operator->(void);
};
#endif
//sp.cpp
#include "sp.h"
using namespace std;
sp::sp()
{
}
sp::sp(Person *other)
{cout << "sp person * other" << endl;p = other;
}
sp::~sp()
{cout << "~sp()" << endl;if(p)delete p;
}
Person * sp::operator->(void)
{return p;
}
#include "Person.h"
#include "sp.h"
void test_func(void)
{sp p = new Person();p->showinfo();
}
int main(int argc, char **argv)
{int i;for(i = 0; i < 2;i++){test_func();}return 0;
}

编译运行

Person()
sp person * other
showinfo()
~sp()
~Person()
Person()
sp person * other
showinfo()
~sp()
~Person()

可见sp类的析构函数成功将指针以及Person对象释放了。

3. 新的问题:拷贝构造引发的重复析构错误

在第二部分的sp类中,已经预先定义了一个拷贝构造函数,在此基础上修改main.cpp 重载一个test_func来调用拷贝构造函数。
修改后的main.cpp如下

#include "Person.h"
#include "sp.h"
void test_func(void)
{sp p = new Person();p->showinfo();
}
void test_func(const sp &other)
{sp s = other;s->showinfo();
}
int main(int argc, char **argv)
{int i;sp other = new Person();for(i = 0; i < 2;i++){test_func(other);}return 0;
}

编译执行后:报以下错误,重复的内存释放动作。原因就是拷贝构造的Person对象是以形参方式传入的,函数调用结束后,形参会被销毁,而拷贝构造对象与main函数中创建的对象指向同一块内存,这样main函数中的sp other对象被销毁,导致第二次调用时,找不到这个对象。

*** Error in `./Person’: double free or corruption (fasttop): 0x0000000000d98c20 ***

4. 引入构造计数解决重复析构(类Java内存回收机制)

如何解决重复析构的问题呢,我们可以参考一下Java的内存回收机制,Java在HEAP中new出来的对象,每关联一个指针就会在内部的计数值+1, 当这个计数值清空,意味着没有指针再指向这部分HEAP时,就会启动回收机制进行回收动作,那么C++当然可以借鉴这个方法。再构造一个计数的类。命名为RefBase

//Refbase.h
#ifndef REFBASE_H
#define REFBASE_H
class Refbase {int m_count;
public:Refbase() : m_count(0) {}void incStrong();void decStrong();int getStrongCnt();
};
#endif
//Refbase.cpp
#include "Refbase.h"
void Refbase::incStrong()
{m_count++; 
}
void Refbase::decStrong()
{m_count--;
}
int Refbase::getStrongCnt()
{return m_count;
}

然后让Person类来继承这个类

//Person.h
#ifndef PERSON_H
#define PERSON_H
#include "Refbase.h"
#include <iostream>
class Person : public Refbase
{
public:Person();~Person();void showinfo(void);
};
#endif

同时处理sp类析构过程中判断构造计数

#include "sp.h"
using namespace std;
sp::sp()
{
}
sp::sp(Person *other)
{cout << "sp person * other" << endl;p = other;p->incStrong();
}
sp::~sp()
{cout << "~sp()" << endl;p->decStrong();if(p->getStrongCnt() == 0)delete p;
}
Person * sp::operator->(void)
{return p;
}

编译后执行

Person()
sp person * other
showinfo()
~sp()
~Person()
showinfo()
~sp()
~sp()

5. 引入类模板来提高代码的可重用性

sp类需要创建一个Person类的指针成员,sp类与目标类存在很强的关联性,因此可以将sp类设置为类模板,将Person类作为一个模板参数传入,使得sp类可以更加通用。
注意模板类的声明和实现都必须放到 头文件中

//sp.h
#ifndef SP_H
#define SP_H
#include "Person.h"
#include <iostream>
using namespace std;
template<typename T>
class sp
{T *p;
public:sp();sp(T * other);~sp();T * operator->(void);
};
#endiftemplate<typename T>
sp<T>::sp()
{
}
template<typename T>
sp<T>::sp(T *other)
{cout << "sp person * other" << endl;p = other;p->incStrong();
}
template<typename T>
sp<T>::~sp()
{cout << "~sp()" << endl;p->decStrong();if(p->getStrongCnt() == 0)delete p;
}
template<typename T>
T * sp<T>::operator->(void)
{return p;
}

然后重写一下main函数中的调用形式

#include "Person.h"
#include "sp.h"
template<typename T>
void test_func(void)
{sp<T>p = new T();p->showinfo();
}
template<typename T>
void test_func(const sp<T> &other)
{sp<T> s = other;s->showinfo();
}
int main(int argc, char **argv)
{int i;sp<Person>other = new Person();for(i = 0; i < 2;i++){test_func(other);}return 0;
}

编译之后运行得到了与上一部分完全一致的运行结果。

6. 新的问题:线程安全性

考虑到一个进程中如果存在多个线程,那么上述针对指针的保护可能会失效。这是因为在RefBase中对于m_count的操作不是原子的,是可能被打断的,一旦被打断就会引起不可预料的结果。因此我们需要将m_count的操作变为原子级别。这就引申出了本文的主角
LightRefBase类
从Android源码路径

frameworks/rs/cpp

中可以找到三个文件
RefBase.h
StrongPointer.h
TypeHelpers.h

我们直接将其包含到工程中,删除掉我们自己写的Refbase 和 sp 类文件
这样以来Person类改写为

//Person.h
#ifndef PERSON_H
#define PERSON_H
#include "RefBase.h"
#include <iostream>
using namespace std;
using namespace android::RSC;class Person : public LightRefBase<Person>
{
public:Person();~Person();void showinfo(void);
};
#endif

main.cpp中代码无须更改,直接运行就可以得到正常的结果。从而如果我们想使用智能指针只需要将我们的目标类继承LightRefBase模板,然后使用sp类来创建对象就可以实现简单的自动回收。

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

相关文章

  1. Navicat导出表结构(表设计)为Excel格式

    1. 首先点击新建查询,然后输入下面的语句SELECT COLUMN_NAME 字段名称, COLUMN_TYPE 数据类型, IF(IS_NULLABLE=NO,是,否) AS 必填, COLUMN_COMMENT 注释 FROM INFORMATION_SCHEMA.COLUMNS where -- Finance为数据库名称,到时候只需要修改成你要导出表结构的数据库即可 table…...

    2024/4/17 3:52:01
  2. c# 接收C++传入参数 char* 然后在传入C++ 求解

    c++代码如下: char* APPdd(char * pdlq){char s[500] = { 0 };sprintf(s, "%s", pdlq);char* dsa = s;return dsa;}c# 需要 传入char* 参数到C++里然后在返回 char*到C#里 在数据转换过程中不知道用什么方法比较好 求解[DLLImport("ABC.DLL",EntryPo…...

    2024/4/17 3:53:19
  3. Python 标准库:: textwrap---文本自动换行与填充

    textwrap --- 文本自动换行与填充 源代码: Lib/textwrap.py textwrap 模块提供了一些快捷函数,以及可以完成所有工作的类...

    2024/4/19 7:13:37
  4. BASIC-9 特殊回文数

    资源限制时间限制:1.0s 内存限制:512.0MB问题描述123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式输入一行,包含一个正整数n。输出格式按从小到大的顺序输出满足条件的…...

    2024/4/18 18:11:28
  5. win10 samba服务死活用不了的后续

    前言samba客户端连接samba linux服务器失败,两端互ping是可以的,就是samba请求无法执行。尝试过很多:关闭防火墙、windows 更新清理、注册器编辑等等,并未解决。解决 当一切办法都试过无用后,尝试更新当前系统到最新版本 进入win10易升下载 更新完系统后使用电脑管家更新下…...

    2024/4/17 3:52:13
  6. SQL排序检索数据

    SQL直接用SELECT查询出的数据,是以数据在其底层表中出现的顺序显示的 。如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有任何意义。 SQL中对检索出的数据排序使用ODER BY子句。使用方法如下所示: -- 排序检索数据(按一个列排序) SELECT prod_name FROM Products…...

    2024/4/17 3:52:07
  7. VBA小代码-语句-使用VBA取消Excel的筛选状态

    ActiveSheet.AutoFilterMode = False...

    2024/4/19 14:47:25
  8. Idea练习简单的列表添加修改

    Idea练习简单的列表添加修改 启动类 package com.wpx;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication @MapperScan(&qu…...

    2024/4/15 8:06:56
  9. 五月初夏,NVMe全闪阵列Hitachi VSP E990再领风骚

    2020年的五月初夏,一个非常特别的季节。一方面,中国疫情防控到达关键性的转折点,北京逐渐放开进京人员隔离制度,这进一步让大家看到了“摘口罩”的日子似乎离我们已经不远了。另一方面,受到疫情影响,大部分全球性科技公司在2020年第一季度的营收受到明显影响。按照往年的…...

    2024/4/23 15:14:19
  10. Redis缓存穿透以及缓存雪崩的解决方案

    缓存穿透: 缓存穿透是指查询一个缓存中不存在的数据,需要去数据库中获取。 如果数据库也查不到结果,将不会同步到缓存,导致这个不存在数据每次请求都要到数据库查询,以至于失去的缓存的作用。当大量用户执行此操作时,数据库将承受巨大的压力。 解决方案: 1、布隆过滤(B…...

    2024/4/23 15:14:08
  11. 成为数据联合“忍者”的五个步骤:制造商如何在数字化优先的时代确保持续的收入增长

    利润空间不断缩小,使得制造商的日子日益艰难。现在,零售商团队拥有的数据以往任何时候都多,而且懂得如何利用这些数据来增加自己的利润分成。历史数据、竞品数据、供应链透明度,以及利用基于规则的工具和 AI 工具进行类别内比较的能力,提高了零售商的地位,这让制造商获取…...

    2024/4/23 15:14:06
  12. ip命令

    ip家族ip addr语法配置ip route说明语法配置ip neigh语法配置ip monitor语法配置ip rule说明语法配置ip netns语法配置ip link说明语法配置ip tuntap说明语法配置实验bridge+vethens33+bridge+veth ip addr 语法 ip address {add|del} IFADDR dev IFNAME ip address show [ dev…...

    2024/4/23 15:14:05
  13. 服务器优化——禁止root用户远程登录、特定用户可以切换root

    linux中root用户是超级管理员,可以针对root用户暴力破解密码,这样很不安全,工作中我们一般禁止root用户直接远程登陆,开设一个或多个普通用户,只允许登陆普通用户,如果有需要用root用户,可以su切换root 或者sudo来拥有root权限执行命令。一、root无法远程登陆,但所有用…...

    2024/4/23 15:14:11
  14. 《python游戏开发学习》打飞机小游戏(一)

    前言:安装完pygame模块,就去网上找了一些demo来学习,最终锁定在了飞船这个游戏开发上。网上有很多教程,当然这游戏在《Python编程从入门到实践》这本书上就有,只是我没有这本书,也找不到这本书的pdf,所以就跟《手把手教你用python写游戏》这篇文章学习。设置游戏窗口新建…...

    2024/4/23 15:14:06
  15. 亿量数据缓存穿透解决方案

    ...

    2024/4/23 15:14:04
  16. rocketMq存储模型_概述

    现代的消息队列的主要责任就是存储消息和查询消息,本质上,它们都是分布式存储系统。一个存储系统的性能好坏,最主要的决定因素就是它的存储模型。所有的存储系统中,消息队列的存储可以算是很简单的了,因为消息没有修改的需求,这就使得通过简单的追加写就可以完成消息存储…...

    2024/4/23 15:14:04
  17. SpringCloud-01-Eureka服务注册与发现

    Eureka服务注册与发现 1. Eureka基础知识 1. 什么是服务治理 SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理 在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服…...

    2024/4/23 15:14:08
  18. Error:(6, 17) java: 程序包org.junit不存在 Error:(12, 6) java: 找不到符号 符号:类Test 位置:类——程序包不存在的解决方案

    背景: 环境:IDEA2020.1+Maven3.5.4+hadoop 本地仓库配置正确,且本地仓库中有程序所需要的包,但是编译总是抛出如图所示的错误 解决方案: 1. 更换Maven版本为3.6.x(3.6.0, 3.6.1, 3.6.2, 3.6.3)都可以尝试一下 注意要修改IDEA中的setting-Maven设置以及Maven程序包下的co…...

    2024/4/23 15:13:59
  19. 《CCNA网络工程师》指导手册

    这里写自定义目录标题 《CCNA计算机网络工程》实验指导书 目录 试验一 双绞线的制作与测试 1 实验二 模拟仿真实验环境 4 实验三 交换机的基本配置 13 实验四 VLAN配置 21 实验五 VLAN负载均衡 24 实验六 路由器的基本配置 28 实验七 动态路由配置 32 实验八 访问控制列表 34 实…...

    2024/4/29 19:27:13
  20. 男教师的着装面试礼仪

    作为教书育人的教师,着装在紧跟时代的同时,也应该适应其职业特点,起到教育、师表、授业的作用。男教师的着装分为社交服装与职业服装。职业服装即工作服装,应适合职业性质、工作环境,要实用又便于活动,能给人整齐划一、美观整洁之感,能振奋人心,增强职业自豪感。男教师的社…...

    2024/4/23 15:14:00

最新文章

  1. Java clone

    Java clone 原型模式用一个已经创建的实例作为原型&#xff0c;通过复制&#xff08;clone&#xff09;该原型对象来创建一个和原型对象相同的新对象。Java中对象克隆需要重写Object.clone()方法&#xff0c;并实现Cloneable接口。 浅克隆 浅克隆仅仅克隆本对象&#xff0c;…...

    2024/5/7 17:37:58
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/7 10:36:02
  3. 将.docx格式文件转成html,uniapp使用u-parse展示

    使用mammoth。 1、在index.html中加入&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewp…...

    2024/5/2 6:04:57
  4. 【Redis】安装Redis后报ERR Client sent AUTH, but no password is set

    一、问题描述 安装Redis后使用auth验证是否安装成功&#xff08;或者其它应用访问redis时报错&#xff09;&#xff0c;报ERR Client sent AUTH, but no password is set 127.0.0.1:6379> auth 123456 (error) ERR Client sent AUTH, but no password is set二、问题解决 …...

    2024/5/6 8:12:38
  5. Databend 开源周报第 138 期

    Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持多表插入 …...

    2024/5/6 10:31:53
  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