SpringBoot如何使用@Async实现异步调用
先赞后看,养成习惯 🌹 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。
预祝各位正在高考的小学弟学妹们考上理想的大学,高考加油
!
学长忠告:报志愿千万别
选计算机啊~🙄
今天我们聊一下SpringBoot中的异步技术中的异步线程池
,这一块的内容深入的聊内容还是很多的,所以暂时分为三个部分
- 使用
@Async
实现异步调用以及自定义线程池的实现。 - SpringBoot中异步调用线程池
内部实现原理
。 - 我是如何通过线程池技术将
10s
的任务降低到ms
级别。
话不多说跟紧我,老司机要发车了!
异步调用
异步调用这个概念对于学过Java基础的同学来说并不陌生,下面我们以两端代码来直观看看异步和同步的区别以及SpringBoot中实现异步调用的方式。
同步任务
/*** @Auther: 爱唠嗑的阿磊* @Company: Java编程之道* @Date: 2020/7/7 20:12* @Version 1.0*/
@Component
public class MyTask {public static Random random =new Random();public void doTaskOne() throws Exception {System.out.println("开始做任务一");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务一,耗时:" + (end - start) + "毫秒");}public void doTaskTwo() throws Exception {System.out.println("开始做任务二");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务二,耗时:" + (end - start) + "毫秒");}public void doTaskThree() throws Exception {System.out.println("开始做任务三");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务三,耗时:" + (end - start) + "毫秒");}
}
注入MyTask对象,执行三个函数。
@RestControllerclass Test{@AutowiredMyTask myTask;@GetMapping("/")public void contextLoads() throws Exception {myTask.doTaskOne();myTask.doTaskTwo();myTask.doTaskThree();}}
访问http://127.0.0.1:8080/可以看到类似如下输出:
开始做任务一
完成任务一,耗时:3387毫秒
开始做任务二
完成任务二,耗时:621毫秒
开始做任务三
完成任务三,耗时:4395毫秒
异步调用
接下来就通过SpringBoot中的异步调用技术,使三个不存在依赖关系的任务实现并发执行。在Spring Boot中,最简单的方式是通过@Async注解将原来的同步函数变为异步函数.
/*** @Auther: 爱唠嗑的阿磊* @Company: Java编程之道* @Date: 2020/7/7 20:12* @Version 1.0*/
@Component
public class MyTask {public static Random random =new Random();@Asyncpublic void doTaskOne() throws Exception {System.out.println("开始做任务一");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务一,耗时:" + (end - start) + "毫秒");}@Asyncpublic void doTaskTwo() throws Exception {System.out.println("开始做任务二");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务二,耗时:" + (end - start) + "毫秒");}@Asyncpublic void doTaskThree() throws Exception {System.out.println("开始做任务三");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务三,耗时:" + (end - start) + "毫秒");}
}
同时需要在Spring Boot的主程序中配置@EnableAsync使@Async注解能够生效
@EnableAsync
@SpringBootApplication
public class ThreaddemoApplication {public static void main(String[] args) {SpringApplication.run(ThreaddemoApplication.class, args);}
}
再次测试执行你会发现响应结果明显快了不少,但是数据的顺序是乱的。原因是三个函数候已经是异步执行了。主程序在异步调用执行之后,线程的执行顺序得不到保障。
这里可以想到为什么我在 V-LoggingTool 使用可配置的开启的线程池了,因为我存储日志并不关心线程任务的返回值,我需要程序立即往下执行,耗时任务交给线程池去执行就行了。
如果一定要拿到线程执行的结果,对于这个问题怎么处理简单来说看场景
,可以使用Future的get来阻塞获取结果从而保证得到正确的数据。对于一些超时任务的场景可以在get中设置超时时间。
异步回调
接着上文所说的解决思路我们可以通过Future来返回异步调用的结果来感知线程是否执行结束并且获取返回值。知道Future/Callable的同学应该不会感到很陌生。
将三个方法都这样处理一下
/*** @Auther: 爱唠嗑的阿磊* @Company: Java编程之道* @Date: 2020/7/7 20:12* @Version 1.0*/
@Component
public class MyTask {public static Random random =new Random();@Asyncpublic Future<String> doTaskOne() throws Exception {System.out.println("开始做任务一");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务一,耗时:" + (end - start) + "毫秒");return new AsyncResult<>("任务一完成");}@Asyncpublic Future<String> doTaskTwo() throws Exception {System.out.println("开始做任务二");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务二,耗时:" + (end - start) + "毫秒");return new AsyncResult<>("任务二完成");}@Asyncpublic Future<String> doTaskThree() throws Exception {System.out.println("开始做任务三");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();System.out.println("完成任务三,耗时:" + (end - start) + "毫秒");return new AsyncResult<>("任务三完成");}
}
改造一下测试类
@RestControllerclass Test{@AutowiredMyTask myTask;@GetMapping("/")public void contextLoads() throws Exception {/*myTask.doTaskOne();myTask.doTaskTwo();myTask.doTaskThree();*/long start = System.currentTimeMillis();Future<String> task1 = myTask.doTaskOne();Future<String> task2 = myTask.doTaskTwo();Future<String> task3 = myTask.doTaskThree();task1.get();task2.get();task3.get();long end = System.currentTimeMillis();System.out.println("任务全部完成,总耗时:" + (end - start) + "毫秒");}}
执行一下
开始做任务三
开始做任务一
开始做任务二
完成任务三,耗时:1125毫秒
完成任务二,耗时:1520毫秒
完成任务一,耗时:4344毫秒
任务全部完成,总耗时:4354毫秒
当然我只是举一个获取异步回调的例子,实质上,上诉这种写法不可取,因为get是一个阻塞方法,task1如果一直不执行完的话就会一直阻塞在这里。同理还可以使用其他技术来保证一个合理的返回值如:CountDownLatch
等。
自定义线程池
在SpirngBoot中实现自定义线程池很简单,没有接触通过注解实现异步的时候,大家都是自己去写一个线程池然后注入到容器中,最后暴露一下任务提交的方法…但是SpringBoot为你省去了很多繁杂的操作。
- 第一步,先在配置类中定义一个线程池
@EnableAsync@Configurationclass TaskPoolConfig {@Bean("taskExecutor")public Executor taskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(10);executor.setMaxPoolSize(20);executor.setQueueCapacity(200);executor.setKeepAliveSeconds(60);executor.setThreadNamePrefix("taskExecutor-");executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());return executor;}}
- 核心线程数10:线程池创建时候初始化的线程数
- 最大线程数20:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
- 缓冲队列200:用来缓冲执行任务的队列
- 允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
- 线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
- 线程池对拒绝任务的处理策略:这里采用了CallerRunsPolicy
还有一种写法是去实现一个空接口AsyncConfigurer
其内部提供了初始化线程池和获异步异常处理器
public interface AsyncConfigurer {/*** The {@link Executor} instance to be used when processing async* method invocations.*/@Nullabledefault Executor getAsyncExecutor() {return null;}/*** The {@link AsyncUncaughtExceptionHandler} instance to be used* when an exception is thrown during an asynchronous method execution* with {@code void} return type.*/@Nullabledefault AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {return null;}
}
这两种常用的写法是有一些区别的,限于篇幅我们下篇文章看@Async实现异步调用的源码
的时候再去细说。
- 使用该线程池下的线程只需要,@Async注解中指定线程池名即可,比如:
@Async("taskExecutor")public void doTaskOne() throws Exception {log.info("开始做任务一");long start = System.currentTimeMillis();Thread.sleep(random.nextInt(5000));long end = System.currentTimeMillis();log.info("完成任务一,耗时:" + (end - start) + "毫秒");}
通过debug发现的确是使用我们自定义的线程池在执行。
关闭线程池
引入线程池也会存在不少问题,我就针对一种场景简单说一下如何优雅的关闭线程池。
比如线程池任务还在执行,其他异步池已经停止了如Redis或者Mysql的连接池,此时线程池访问就会报错。
如何解决
在初始化线程的时候加上下面这两句
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(60);
- setWaitForTasksToCompleteOnShutdown(true):用来设置线程池关闭的时候等待所有任务都完成再继续销毁其他的Bean,这样这些异步任务的销毁就会先于Redis线程池的销毁。
- setAwaitTerminationSeconds(60):该方法用来设置线程池中任务的等待时间,如果超过这个时候还没有销毁就强制销毁,以确保应用最后能够被关闭,而不被阻塞住。
好了今天就说这么多了,其实还是很简单的运用,希望大家持续关注,后续几天我会@Async实现异步调用的原理,以及我在开发中如何运用线程池技术缩短响应时间。🤞
更多精彩好文尽在:Java编程之道 🎁
欢迎各位好友前去关注!🌹
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- SpringBoot+JWT+Shiro+MybatisPlus后端脚手架
一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。Mybatis-Plus是一个 Mybatis 的增强工具,有代码生成器,并且提供了类似hiberna…...
2024/4/16 6:54:10 - 面向对象做的轮播图
面向对象做的轮播图 css部分 <style>* {margin: 0;padding: 0;list-style: none;}.box {width: 500px;height: 400px;border: 1px solid #000;margin: 50px auto;}ul {height: 50px;background-color: #abcdef;display: flex;justify-content: space-around;align-items:…...
2024/4/16 6:53:45 - 外观数列 (LeetCode 38)
题目描述: 给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。 注意:整数序列中的每一项将表示为一个字符串。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:111211211111221第一项是数字 1 描述前一项,这个数是 1 …...
2024/4/16 6:54:05 - python中级10面向对象上
isinstance() 函数 —描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推…...
2024/4/12 9:26:05 - 掌握这7项Python技能,数据分析不怕!
本文列举了一些提升或加速日常数据分析工作的技巧,包括:1. Pandas Profiling2. 使用 Cufflinks 和 Plotly 绘制 Pandas 数据3. IPython 魔术命令4. Jupyter 中的格式编排5. Jupyter 快捷键6. 在 Jupyter(或 IPython)中使一个单元同时有多个输出7. 为 Jupyter Notebook 即时…...
2024/4/16 6:54:05 - 【Uni-App社区小程序】006-引入CSS动画库
一、Animate.css动画库介绍Animate.css是一个有趣的,跨浏览器的css3动画库,预设了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果;二、下载1、…...
2024/4/19 13:02:18 - Leetcode 93 复原IP地址: 回溯搜索
这题和91题相同,使用的是回溯搜索的办法class Solution { public:vector<string> res;vector<string> restoreIpAddresses(string s) {if(s.size()>12) return res;vector<string> tmp;dfs(s,0,tmp);return res;}void dfs(string s, int index, vector&l…...
2024/4/20 15:14:11 - 苏嵌实训-嵌入式linux C 第 5 天
项目名称【苏嵌实训-嵌入式 linux C 第 5天】今日进度以及任务1.复习c语言的概述2.复习数组,指针等c语言基础知识。学习“右左法则”3.复习了c语言的输入输出方法本日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量)通过课堂复习回忆起c语言基础知识,对c有更深…...
2024/4/4 20:35:36 - JS:本地存储之localStorage、sessionStorage(存储和获取)
进入我的主页,查看更多JS的分享!我的代码有多短,本篇内容就有多短!对比cookie:cookie会与服务器通信;storage只存在客服端,不参与服务器通信;同样受同源策略影响,只有在域名一致的情况下才能查看到对应的数据;navigator.cookieEnabled检测是否启用了cookie,也就说co…...
2024/4/29 3:35:59 - 实时操作系统UCOS学习笔记7----UCOSIII任务相关API函数使用
在上一章我们讲解了UCOSIII的任务管理,我们学习的目的就是为了使用,这一节我们就讲解一下UCOSIII如何创建任务和任务相关函数的使用。 1、任务创建和删除实验 ① OSTaskCreate()函数 UCOSIII是多任务系统,那么肯定要能创建任务,创建任务就是将任务控制块、任务堆栈、任务代…...
2024/4/30 12:44:57 - MATLAB面向对象编程学习笔记----事件和响应
本系列内容为《MATLAB面向对象编程–从入门到设计模式》学习笔记,特此说明。事件事件泛指对象内部状态的改变。在MATLAB中,GUI编程经常使用事件机制。e.g. GUI中一个按钮被按下就是一个事件,并且Button对象状态改变。通常,事件会触发一些响应。在事件发生和触发响应这样的模…...
2024/4/16 6:54:05 - C++和python中的变量定义时的区别
C++和python中的变量定义时的区别 这张图比较全面的显示了python和C变量定义时的区别:C/C++:变量对应内存中的一块区域,当修改这个值时,直接修改内存区域中的值。 python:变量只是对一块存放指定值的内存区域的引用,赋值时是让该变量引用另一块存放新值的内存区域。因此在…...
2024/4/18 15:45:57 - SeLion的自动化测试实现—数据驱动模型
在SeLion框架中提供了2中主要的数据驱动方式,分别为基于Excel表的数据驱动和基于YAML文件的数据驱动方式,这两种方式各有优劣,下面通过代码详细讲解这两种方式的使用并在最后对两种数据驱动方式的使用场景。一:基于Excel的数据驱动方式由于Excel便于对大量的测试数据的处理…...
2024/4/19 17:38:39 - 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年7月份最新版)
内容导航:1、TIOBE排行榜 2、总榜(2020年7月份) 3、本月前三名3.1、C 3.2、Java 3.3、Python4、学习路线图 5、参考地址1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、A…...
2024/4/16 6:55:11 - Java基础知识每日总结(17)---Java常用工具类
常用工具类 程序开发经常需要一些算法,例如提取当前系统日期、生成不重复的随机数字、对数字和日期的格式化输出、还有一些数学函数的运算等,这些都是程序开发中不可避免要使用的技术。这里介绍一些常用的工具类。 1.日期时间类 Date类用于表示日期时间,它位于java.util包中…...
2024/4/16 6:55:01 - mongo-relation
观看up全栈之巅(使用Mongoose基于MongoDB建模并设置关联)所作学习记录 观看地址:https://www.bilibili.com/video/BV1wb41157FX安装mongoose: npm i mongooseconst mongoose = require(mongoose) mongoose.connect(mongodb://localhost:27017/mongo-relation,{useNewUrlParse…...
2024/4/2 6:51:57 - java解决Exception in thread “main“ java.lang.OutOfMemoryError: GC overhead limit exceeded
这个就是内存占用超过了限制,解决方案: 加载文件的容量太大 这个只能切分文件,使用BufferedInputStream一行行读取: BufferedInputStream bufferedReader = new BufferedInputStream(new FileInputStream("文件"), 65536);长时间写入缓存 1.切分写入到不同的文件…...
2024/4/16 6:54:36 - LeetCode 254. 因子的组合(回溯)*
文章目录1. 题目2. 解题 1. 题目 整数可以被看作是其因子的乘积。 例如:8 = 2 x 2 x 2;= 2 x 4.请实现一个函数,该函数接收一个整数 n 并返回该整数所有的因子组合。 注意: 你可以假定 n 为永远为正数。 因子必须大于 1 并且小于 n。示例 1: 输入: 1 输出: []示例 2: 输入…...
2024/4/16 6:55:11 - Linux云计算架构-使用LAMP搭建ecshop电商平台,并测试网站所能承受并发数
文章目录Linux云计算架构-使用LAMP搭建ecshop电商平台1. YUM快速搭建LAMP环境2. mariadb安全安装3. 搭建ecshop电商平台4. 配置虚拟主机实现域名访问5. 使用压测软件测试新搭建网站所能承受的并发数 Linux云计算架构-使用LAMP搭建ecshop电商平台 1. YUM快速搭建LAMP环境 [root@…...
2024/4/16 6:54:00 - 二叉树深度相关算法 + 平衡树判断(letcode)
二叉树的最大深度 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回它的最大深度 3 。来源:力扣(LeetCode) 链接:…...
2024/4/16 6:55:42
最新文章
- 笔记:Qt开发之多线程的实现(QThread、moveToThread)
目标:了解Qt实现多线程的两种基本方式(QThread、moveToThread),各自的实现方式、使用场景。 1,子类化QThread 实现方式:继承QThread类,重写run()函数实现多线程 class WorkerThread : public QThread {Q_OBJECTpubli…...
2024/5/5 11:33:14 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - C# 抽象类、接口
(1)、抽象类和抽象方法的定义和实现:abstract override abstract class Vehicle{ public abstract void Run(); } 继承抽象类并且实现抽象方法 class RaceCar : Vehicle{ public override void Run(){ } } (2)、接口的…...
2024/5/5 8:37:24 - 文件系统 FTP Ubuntu 安装入门介绍
FTP 环境: Ubuntu 14.04 blog zh_CN ubuntu14.04 Install 全新安装:apt-get install vsftpd 重新安装:apt-get --reinstall install vsftpd 卸载并清除配置文件:apt-get --purge remove vsftpd Start & Restart $ service vsftpd start $ se…...
2024/5/2 18:20:21 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/4 23:54:56 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/4 23:55:17 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/4 18:20:48 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/4 23:55:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下: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