使用libuv线程池实现Node.js异步函数
JavaScript是一种单线程的编程语言。在使用Node.js的时候,如果有耗时的操作,需要放到异步函数中。Node.js的底层使用了libuv,用于实现异步I/O。
学习资源
- Node.js C/C++ Addons
- An Introduction to libuv
- Thread pool work scheduling
- .node-gyp\5.5.0\include\node\uv.h
优化Node.js条形码插件
安装
- Dynamsoft Barcode Reader
- Node.js
- node-gyp:
npm install -g node-gyp
同步接口
先看下同步接口是怎么实现的。
创建dbr.cc,并在里面增加一个函数DecodeFile:
#include <node.h>
#include <node_buffer.h>
#include <string.h>
#include <uv.h>
#include "If_DBR.h"
#include "BarcodeFormat.h"
#include "BarcodeStructs.h"
#include "ErrorCode.h"using namespace v8;// Barcode format
const char * GetFormatStr(__int64 format)
{if (format == CODE_39)return "CODE_39";if (format == CODE_128)return "CODE_128";if (format == CODE_93)return "CODE_93";if (format == CODABAR)return "CODABAR";if (format == ITF)return "ITF";if (format == UPC_A)return "UPC_A";if (format == UPC_E)return "UPC_E";if (format == EAN_13)return "EAN_13";if (format == EAN_8)return "EAN_8";if (format == INDUSTRIAL_25)return "INDUSTRIAL_25";if (format == QR_CODE)return "QR_CODE";if (format == PDF417)return "PDF417";if (format == DATAMATRIX)return "DATAMATRIX";return "UNKNOWN";
}/** decodeFile(fileName, barcodeTypes, callback)*/
void DecodeFile(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);// get argumentsString::Utf8Value fileName(args[0]->ToString()); // convert v8 string to char *char *pFileName = *fileName; // file name__int64 llFormat = args[1]->IntegerValue(); // barcode typesLocal<Function> cb = Local<Function>::Cast(args[2]); // javascript callback function// initialize Dynamsoft Barcode Readerint iMaxCount = 0x7FFFFFFF;ReaderOptions ro = {0};pBarcodeResultArray pResults = NULL;ro.llBarcodeFormat = llFormat;ro.iMaxBarcodesNumPerPage = iMaxCount;// decode barcode imageint ret = DBR_DecodeFile(pFileName, &ro, &pResults);if (ret)printf("Detection error code: %d\n", ret);int count = pResults->iBarcodeCount;pBarcodeResult* ppBarcodes = pResults->ppBarcodes;pBarcodeResult tmp = NULL;// array for storing barcode resultsLocal<Array> barcodeResults = Array::New(isolate);for (int i = 0; i < count; i++){tmp = ppBarcodes[i];Local<Object> result = Object::New(isolate);result->Set(String::NewFromUtf8(isolate, "format"), String::NewFromUtf8(isolate, GetFormatStr(tmp->llFormat)));result->Set(String::NewFromUtf8(isolate, "value"), String::NewFromUtf8(isolate, tmp->pBarcodeData));barcodeResults->Set(Number::New(isolate, i), result);}// release memory of barcode resultsDBR_FreeBarcodeResults(&pResults);// run the callbackconst unsigned argc = 1;Local<Value> argv[argc] = { barcodeResults };cb->Call(isolate->GetCurrentContext()->Global(), argc, argv);
}void Init(Handle<Object> exports) {NODE_SET_METHOD(exports, "decodeFile", DecodeFile);
}NODE_MODULE(dbr, Init)
现在可以使用JavaScript接口decodeFile了。创建binding.gyp。针对Windows, Linux和macOS添加不同的头文件和库路径:
{"targets": [{'target_name': "dbr",'sources': [ "dbr.cc" ],'conditions': [['OS=="linux"', {'defines': ['LINUX_DBR',],'include_dirs': ["/home/xiao/Dynamsoft/BarcodeReader4.0/Include"],'libraries': ["-lDynamsoftBarcodeReaderx64", "-L/home/xiao/Dynamsoft/BarcodeReader4.0/Redist"],'copies': [{'destination': 'build/Release/','files': ['/home/xiao/Dynamsoft/BarcodeReader4.0/Redist/libDynamsoftBarcodeReaderx64.so']}]}],['OS=="win"', {'defines': ['WINDOWS_DBR',],'include_dirs': ["E:\Program Files (x86)\Dynamsoft\Barcode Reader 4.3\Components\C_C++\Include"],'libraries': ["-lE:\Program Files (x86)\Dynamsoft\Barcode Reader 4.3\Components\C_C++\Lib\DBRx64.lib"],'copies': [{'destination': 'build/Release/','files': ['E:\Program Files (x86)\Dynamsoft\Barcode Reader 4.3\Components\C_C++\Redist\DynamsoftBarcodeReaderx64.dll']}]}],['OS=="mac"', {'defines': ['MAC_DBR',],'include_dirs' : ["/Applications/Dynamsoft/Barcode\ Reader\ 4.1/Include"],'libraries': ["-lDynamsoftBarcodeReader"]}]]}]
}
配置构建环境:
node-gyp configure
编译工程:
node-gyp build
创建dbr.js测试下:
var dbr = require('./build/Release/dbr');
var readline = require('readline');
var fs = require('fs');
var barcodeTypes = 0x3FF | 0x2000000 | 0x8000000 | 0x4000000; // 1D, QRCODE, PDF417, DataMatrixfunction decodeFile(fileName) {dbr.decodeFile(fileName, barcodeTypes,function(msg) {var result = null;for (index in msg) {result = msg[index]console.log("Format: " + result['format']);console.log("Value : " + result['value']);console.log("##################");}});
}var rl = readline.createInterface({input: process.stdin,output: process.stdout
});rl.question("Please input a barcode image path: ", function(answer) {decodeFile(answer);rl.close();
});
异步接口
虽然这样封装接口也是通过回调函数返回的,但是所有的工作都在主线程中,会造成堵塞。解决的方法就是把耗时的工作放到工作线程中。使用接口uv_queue_work(uv_loop_t* loop, uv_work_t* req, uv_work_cb work_cb, uv_after_work_cb after_work_cb)可以把任务放到libuv的线程池中。
新建接口decodeFileAsync:
/** decodeFileAsync(fileName, barcodeTypes, callback)*/
void DecodeFileAsync(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);// get argumentsString::Utf8Value fileName(args[0]->ToString()); // file namechar *pFileName = *fileName;__int64 llFormat = args[1]->IntegerValue(); // barcode typesLocal<Function> cb = Local<Function>::Cast(args[2]); // javascript callback function// initialize BarcodeWorkerBarcodeWorker *worker = new BarcodeWorker;worker->request.data = worker;strcpy(worker->filename, pFileName);worker->callback.Reset(isolate, cb);worker->llFormat = llFormat;worker->pResults = NULL;worker->buffer = NULL;uv_queue_work(uv_default_loop(), &worker->request, (uv_work_cb)DetectionWorking, (uv_after_work_cb)DetectionDone);
}void Init(Handle<Object> exports) {NODE_SET_METHOD(exports, "decodeFile", DecodeFile);NODE_SET_METHOD(exports, "decodeFileAsync", DecodeFileAsync);
}
把条形码的解码识别工作放到uv_work_cb回调函数中:
/** uv_work_cb*/
static void DetectionWorking(uv_work_t *req)
{// get the reference to BarcodeWorkerBarcodeWorker *worker = static_cast<BarcodeWorker *>(req->data);// initialize Dynamsoft Barcode Readerint iMaxCount = 0x7FFFFFFF;ReaderOptions ro = {0};pBarcodeResultArray pResults = NULL;ro.llBarcodeFormat = worker->llFormat;ro.iMaxBarcodesNumPerPage = iMaxCount;// decode barcode imageint ret = 0;if (worker->buffer) {ret = DBR_DecodeStream(worker->buffer, worker->size, &ro, &pResults);}else{ret = DBR_DecodeFile(worker->filename, &ro, &pResults);}if (ret)printf("Detection error code: %d\n", ret);// save results to BarcodeWorkerworker->errorCode = ret;worker->pResults = pResults;
}
uv_after_work_cb回调函数用来在主线程显示结果:
/** uv_after_work_cb*/
static void DetectionDone(uv_work_t *req,int status)
{Isolate* isolate = Isolate::GetCurrent();HandleScope scope(isolate);// get the reference to BarcodeWorkerBarcodeWorker *worker = static_cast<BarcodeWorker *>(req->data);// get barcode resultspBarcodeResultArray pResults = worker->pResults;int errorCode = worker->errorCode;int count = pResults->iBarcodeCount;pBarcodeResult* ppBarcodes = pResults->ppBarcodes;pBarcodeResult tmp = NULL;// array for storing barcode resultsLocal<Array> barcodeResults = Array::New(isolate);for (int i = 0; i < count; i++){tmp = ppBarcodes[i];Local<Object> result = Object::New(isolate);result->Set(String::NewFromUtf8(isolate, "format"), String::NewFromUtf8(isolate, GetFormatStr(tmp->llFormat)));result->Set(String::NewFromUtf8(isolate, "value"), String::NewFromUtf8(isolate, tmp->pBarcodeData));barcodeResults->Set(Number::New(isolate, i), result);}// release memory of barcode resultsDBR_FreeBarcodeResults(&pResults);// run the callbackconst unsigned argc = 1;Local<Value> argv[argc] = {barcodeResults};Local<Function> cb = Local<Function>::New(isolate, worker->callback);cb->Call(isolate->GetCurrentContext()->Global(), argc, argv);// release memory of BarcodeWorkerdelete worker;
}
修改dbr.js调用异步接口:
var dbr = require('./build/Release/dbr');
var readline = require('readline');
var fs = require('fs');
var barcodeTypes = 0x3FF | 0x2000000 | 0x8000000 | 0x4000000; // 1D, QRCODE, PDF417, DataMatrixfunction decodeFileAsync(fileName) {dbr.decodeFileAsync(fileName, barcodeTypes,function(msg) {var result = null;for (index in msg) {result = msg[index]console.log("Format: " + result['format']);console.log("Value : " + result['value']);console.log("##################");}});
}var rl = readline.createInterface({input: process.stdin,output: process.stdout
});rl.question("Please input a barcode image path: ", function(answer) {decodeFileAsync(answer);rl.close();
});
源码
https://github.com/yushulx/nodejs-barcode-for-win-linux-mac
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 【转】Node.js软肋之CPU密集型任务
前言:任何事物都不是完美的,不可能仅仅依赖它解决所有问题。Node.js一样,它本身已经非常好,但在某些场景,需要其他办法来补充,才能更好地完成任务。引用地址:http://www.infoq.com/cn/articles/nodejs-weakness-cpu-intensive-tasksNode.js在 官网 上是这样定义的:“一个…...
2024/4/24 13:06:40 - 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
【题外话】 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在其他机器上运行程序,进而需要远程调试功能,不过还好,NTVS提供的远程调试也非常方便。【文章索引】 NTVS远…...
2024/4/23 17:56:22 - 学习5——node.js安装及MongoDB数据库连接
这次是用的Mac,所以node.js的安装就在Mac上进行了,只与windows如何安装,只需要从官网下载安装包进行安装,然后配置一下环境变量即可,这里就不详细说了,大家有问题可以留言或者直接搜索即可。 安装noodle.js: 1.安装Homebrew: 打开终端输入:ruby -e “$(curl -fsSL htt…...
2024/4/24 13:06:38 - Node.js微信公众号开发
技术要点分析 微信号开发:没钱买服务器的办法:Ngrok内网转发->TUNNEL PageKite花生壳 ntralhook QQ浏览器,应用中心,开发者工具->微信 Ngrok内网转发->TUNNEL 开个服务器python -m SimpleHTTPServer 3100 php -S localhost:8000 http-server [path] [options]2 …...
2024/4/24 13:06:37 - 我node.js的第一滴血
神奇的Node.js我感觉js是万能的托谷歌和各大神的福,js在几年前就已经在服务器端站住了脚,现在俨然已经开始和各大服务端脚本们开始干架了。我Node.js的第一滴血下载node.js其实我很早之前为了使用npm就已经下过一遍了而且也是不早之前,现在就又重新下了一遍 就在node.js官网…...
2024/4/24 13:06:36 - 消息队列Rabbitmq,在Node.js中的应用
为什么写这篇文章现在的面试要求越来越高了,打开看了看几个 BOSS 招聘 Node.js 全栈开发的,其中都有一条“了解 消息队列,并在项目中应用过”,呜呜呜后端开发者应该都知道消息队列,但是一些前端开发者可能知道的并不多,但是你们可能好奇抢票,商品秒杀等功能是如何实现的,…...
2024/4/24 13:06:35 - Node.js操作Redis
最近在学习Node.js,记录下Node连接redis基本操作# mac安装 brew install redis# 修改配置文件 /usr/local/etc/redis.conf requirepass password# bind 127.0.0.1 如果需要可放开# 启动 redis-server &# 停止 kill -9 PID redis-cli shundown# 项目中npm install redisvar…...
2024/4/27 18:46:20 - mac下安装node.js,express,webstorm9
1.mac上由于不存在分区的情况,所以我们可以从官网上下载.kpg文件进行默认安装 2.在安装express的时候可能会出现 Error: EACCES, mkdir /usr/local/lib/node_modules/express错误,这个是需要管理员权限安装的,所以我们这样全局安装 sudo npm install -g express 3.安装webstorm…...
2024/4/24 13:06:37 - Node.js 介绍
章节Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js 事件 Node.js 上传文件 Node.js 发送EmailNode.js是什么? Node.js是开源的服务器环境 Node.js是免费的 Node.js运行在各种平台上(Windows、Linux、Un…...
2024/4/18 7:54:54 - [小程序NO.1]如何在小程序开发工具提供的Node.js快速启动模版的基础上获得微信群信息
LZ最近在做一个基于群的小程序,需要先解决如何获得小程序提供的微信群信息的技术问题。由于LZ之前没有建站经验,所以直接使用了腾讯云的小程序解决方案,就是Node.js快速启动模版。这个模版后台是基于koa框架和微信自己开发的wafer2框架。其中wafer2框架中直接提供了对于用户…...
2024/4/15 4:13:44 - Mac 安装nodejs (亲测有效)
Mac 安装nodejs nodejs, mark下 Mac 下 nodejs 的安装和检验,给自己留个标记,提高下以后的效率。step 1:访问nodejs官网,点击Current 区域稳定版,并下载https://nodejs.org/en/step 2:双击刚下载的文件,按步骤默认安装就行step 3:安装完成后打开终端,输入 npm -v n…...
2024/4/15 4:13:43 - Mac下安装Node.js
今天介绍一下Mac下Node.js的下载安装方法,后面我们安装Bootstrap、Angurlar和jQuery等都是通过Node.js的npm方式的。 1.在必应中搜索“node.js mac”,第一个搜索结果就是node.js官方站点:2.选择安装最新的版本:3.下载后点击安装包,整个过程非常傻瓜化:4.安装完后,打开终端…...
2024/4/15 4:13:42 - Node.js 编写跨平台 spawn 语句
前言Node.js 是跨平台的,也就是说它能运行在 Windows、OSX 和 Linux 平台上。很多 Node.js 开发者都是在 OSX 上做开发的,然后再将代码部署到 Linux 服务器上。由于 OSX 和 Linux 都是基于 Unix 的,因此两者共性很多。Windows 也是 Node.js 官方支持的平台,只要你通过正确的…...
2024/4/20 2:22:12 - Mac环境 部署Node.js环境 安装Angular CLI 解决找不到ng命令的问题
写这篇博客的原因是本人最近在学习AngularJS 公司环境是Ubuntu 家里环境是macOS 公司搭建Angular环境时非常顺利,结果到了Mac上…… 所以决定记录下来,希望也能帮助到更多的人要安装Angular CLI,就需要先安装Node.js环境 Mac上Node.js的安装可以有三种方式: 1. 通过第三方…...
2024/4/15 4:13:40 - Node.js调用cmd输出中文乱码
在Windows上使用Node.js通过cmd调用别人的exe程序,结果发现输出中文乱码,代码如下:const { exec } = require(child_process);exec(cmd_test.exe, { encoding: utf8 }, (error, stdout) => {console.log(stdout1, stdout); });exec中的 encoding 选项可用于指定用于解码 …...
2024/4/15 4:13:39 - 使用supervisor热更新时,node.js占用大量CPU问题解决
问题 我用node.js写了个服务,于是用supervisor热更新,方便在修改代码后,不用手动重新启动服务,但是,这时问题就来了,每次启动服务后,CPU瞬间占到80-90%,甚至是100%,如下图所示:解决 刚开始我把问题定位在node.js的代码上,以为是node.js单线程的问题,但是我把操作数…...
2024/4/15 4:13:38 - Mac node js环境的安装与测试
1、mac node.js环境的配置 第一步:打开终端,输入以下命令安装Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 复制代码Homebrew官网 http://brew.sh/index_zh-cn.html第二步:安装node,在终端输入…...
2024/4/24 13:06:32 - Node.js基础与实战
Node.js基础与实战Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP&HTTPS 进程与集群 网络安全关于node.js的误会昨天写了篇博客,介绍了一下我对node.js的第一次亲密接触后的感受,以为node.js很小…...
2024/4/24 13:06:34 - Mac 安装node.js、npm、vue及初始化项目
node.js、npm安装: 到官网https://nodejs.org/en/下载node.js 新版安装自带npm vue安装: 用淘宝npm镜像安装: sudo npm install -g cnpm --registry=https://registry.npm.taobao.org安装vue: sudo cnpm install -g @vue/cli项目初始化: 首先进入到你想建立项目的文件夹下…...
2024/4/24 13:06:33 - Node.js学习--搭建一个简单的带有get/post接口的服务
最近在学习node.js,就想搭建一个简单的服务,在客户端通过get/post来请求数据,不啰嗦,以下是步骤1. 安装node.js 在Mac上安装node.js通常有三种方法: homebrew 官方pkg包 nvm在参考https://www.quora.com/What-is-the-best-way-to-install-Node-JS-and-npm-on-OS-X 之后决定…...
2024/4/24 13:06:32
最新文章
- 【介绍下IDM的实用功能】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
2024/4/28 0:39:30 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - yolov9直接调用zed相机实现三维测距(python)
yolov9直接调用zed相机实现三维测距(python) 1. 相关配置2. 相关代码2.1 相机设置2.2 测距模块2.2 实验结果 相关链接 此项目直接调用zed相机实现三维测距,无需标定,相关内容如下: 1. yolov4直接调用zed相机实现三维测…...
2024/4/26 22:13:13 - Django实现的登录注册功能
1 前言 在Web开发中,用户登录和注册是最基本且必不可少的功能。Django,作为一个高级的Python Web框架,为我们提供了强大的工具和库来快速实现这些功能。下面,我将详细介绍如何使用Django来实现用户登录和注册功能。 2 功能介绍 …...
2024/4/23 6:25:06 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/26 18:09:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/26 20:12:18 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/27 4:00:35 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/26 21:56:58 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/25 18:39:16 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/26 22:01:59 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/25 18:39:00 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) 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 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在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