系统的学习一下C++标准的多线程----同步并发操作
目录
等待事件或其他条件
用条件变量等待条件
使用future等待一次性事件
从后台任务中返回值
std::future
std::packaged_task
std::promise
std::async
等待自多个线程
有时间限制的等待
有时候你不只是需要保护数据,还需要在独立的线程上进行同步操作。例如,一个线程在能够完成其任务之前可能需要等待另外一个线程完成任务。一般来说,希望一个线程等待特定的事件的发生或者是一个条件变为true是常见的事情。虽然通过定期检查“任务完成”的标识或是在共享数据中存储类似的东西也能做到这一点,但是不甚理想。对于像这样的线程间同步操作的需求是如此常见,以至于C++标准提供了条件变量(condition)和期值(future)为形式的工具来处理它。
等待事件或其他条件
如果一个线程正等待着第二个线程完成一项任务他有几个选择:
第一:第一个线程一直检查共享数据(由互斥元保护)中的标识,并且让第二个线程在完成任务时设置该标识。
第二:选择使用std::this_thread::sleep_for()函数,参数时毫秒。让等待中的线程在检查之间休眠一会儿。
第三:同时也是首选,是使用C++标准库提供的工具来等待事件本身。等待由另外一个线程触发一个事件的最基本机制是条件变量。
从概念上说,条件变量与某些事件或其他条件相关,并且一个或多个线程可以等待该条件被满足。当某个线程已经确定条件得到满足,他就可以通知一个或者多个正在条件变量上进行等待的线程,以便唤醒他们并继续处理。
用条件变量等待条件
标准C++库提供了两个条件变量的实现std::condition_variable和std::condition_variable_any。这两个实现都在<condition_variable>库的头文件中两者都需要和互斥元一起工作,以便提供恰当的同步;前者仅限于和std::mutex一起工作,而后者则可以与符合成为类似互斥元的最低标准的任何东西一起工作,因此以_any为后缀。因为std::condition_variable_any更加普遍,所以会有大小、性能或者操作系统资源方面的形式的额外代价的可能,因为应该首选std::condition_variable,除非需要额外的灵活性。
当 std::condition_variable 对象的某个 wait 函数被调用的时候,它使用 std::unique_lock(通过 std::mutex) 来锁住当前线程。当前线程会一直被阻塞,直到另外一个线程在相同的 std::condition_variable 对象上调用了 notification 函数来唤醒当前线程。
示例代码:
#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>using namespace std;
std::condition_variable cdv; //全局条件变量
mutex mtx; //全局互斥锁
bool ready = false; //全局标志位
void func()
{std::unique_lock<std::mutex> lck(mtx);while (!ready) //如果标识位不为true,则等待...{cdv.wait(lck); // 当前线程被阻塞,当全局标识位变为true之后,线程被唤醒继续往下执行打印线程ID}cout << "thread ID = " << std::this_thread::get_id() << endl; //打印当前线程的ID
}
int main()
{thread th[10];for (auto& t : th){t = thread(func);} thread t2([]() {std::unique_lock<std::mutex> lck(mtx);for (int i = 0; i < 20; ++i){cout << "i = " << i << endl;}ready = true; //设置全局标识位为truecdv.notify_all();//唤醒所有线程});for (auto& t : th){if (t.joinable()){t.join();}}if (t2.joinable()){t2.join();}return 0;
}
执行结果:
要是不同标识位也是可以的
#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>using namespace std;
std::condition_variable cdv; //全局条件变量
mutex mtx; //全局互斥锁
void func()
{std::unique_lock<std::mutex> lck(mtx);cdv.wait(lck); // 当前线程被阻塞,当全局标识位变为true之后,线程被唤醒继续往下执行打印线程IDcout << "thread ID = " << std::this_thread::get_id() << endl; //打印当前线程的ID
}
int main()
{thread th[10];for (auto& t : th){t = thread(func);} thread t2([]() {std::unique_lock<std::mutex> lck(mtx);for (int i = 0; i < 20; ++i){cout << "i = " << i << endl;} cdv.notify_all();//唤醒所有线程});for (auto& t : th){if (t.joinable()){t.join();}}if (t2.joinable()){t2.join();}return 0;
}
结果跟上面的是一样的。
分享一个不错的博客
C++11 并发指南五(std::condition_variable 详解) - Haippy - 博客园 (cnblogs.com)
使用future等待一次性事件
如果等待线程只打算等待一次,那么当条件为true时它就不会再等待这个条件变量了,条件变量未必是同步机制的最佳选择。如果所等待的条件是一个特定数据块的可用性时,这尤其正确。在这个场景中使用期值(future)可能会更合适。
C++标准库使用future为这类一次性事件建模。如果一个线程需要等待特定的一次性事件,那么就会获取一个future来代表这一事件。然后,该线程可以周期性地在这个future上等待一小段时间以检查事件是否发生,而在检查间隙执行其他任务。另外,它还可以去做另外一个任务,直到其所需的事件已经发生才继续进行,随后就等待future变为就绪(ready)。future可能会有与之相关的数据,或者可能没有。一旦事件已经发生(即future已变为就绪),future就无法复位。
C++标准库中有两类future,是由<future>库的头文件中声明的两个类模板实现的:
唯一 future(unique future是,std::future<>)和共享future(shared futures,std::shared_future<>).这两个类模板是参照std::unique_ptr和std::shared_ptr 建立的。std::future的实例是仅有的一个指向其关联事件的实例,而多个std::shared_future的实例则可以指向同一个事件。对于后者而言,所有实例将同时变为就绪,并且它们都可以访问所有与该事件相关的数据。这些关联的数据就是这两种future成为模板的原因;像std::unique_ptr 和 std::shared_ptr 一样,模板参数就是关联数据的类型。
std::future<void>和std::shared_future<void>模板特化应该用于无关联数据的场合。
虽然future被用于线程间通信,但是future对象本身却并不提供同步访问。如果多线程需要访问同一个future对象,它们必须通过互斥元或其他同步机制来保护访问。
从后台任务中返回值
假设你有个长期运行的计算,预期最终将得到一个结果但是现在你还不需要这个值。你可以启动一个线程来执行计算,但这也意味着你必须注意将结果传回来,因为std::thread并没有提供直接的机制来这样做。这就是std::async函数模板。同样声明在<future>头文件中。
在不需要立即得到结果的时候,你可以使用std::async来启动一个异步任务。std::async返回一个std::future对象,而不是给你一个std::thread对象让你在上面等待,std::future对象最终将持有函数的返回值。当你需要这个值时,只要在future上调用get(),线程就会阻塞直到future就绪,然后返回该值。
std::async是一个函数模板,会启动一个异步任务,最终返回一个std::future对象。在之前我们都是通过thread去创建一个子线程,但是如果我们要得到这个子线程所返回的结果,那么可能就需要用全局变量或者引用的方法来得到结果,这样或多或少都会不太方便,那么async这个函数就可以将得到的结果保存在future中,然后通过future来获取想要得到的结果。async比起thread来说可以对线程的创建又有了更好的控制,比如可以延迟创建。下面先介绍一下std::future, std::packaged_task, std::promise。
std::future
std::future是一个类模板,提供了一个访问异步操作的结果的机制。我们可以通过future_status去查询future的三种状态,分别是deferred(还未执行),ready(已经完成),timeout(执行超时),所以我们可以通过这个去查询异步操作的状态。future提供了一些函数比如get(),wait(),wait_for(),一般用get()来获取future所得到的结果,如果异步操作还没有结束,那么会在此等待异步操作的结束,并获取返回的结果。wait()只是在此等待异步操作的结束,并不能获得返回结果。wait_for()超时等待返回结果。
#include <iostream>
#include <thread>
#include <mutex>
#include <future>using namespace std;
int func(int i)
{return 10 + i;
}
int main()
{std::future<int> fu = std::async(std::launch::async, func, 6); cout << fu.get() << endl;return 0;
}
结果:
std::packaged_task
std::packaged_task是一个类模板,顾名思义是用来打包的,将一个可调用对象封装起来,然后可以将其的返回值传给future。std::packaged_task<函数返回类型(参数类型)> 变量名(函数名)。下面展示一下std::packaged_task()的简单用法,也可以将函数换成lambda表达式。
std::packaged_task<>将一个future绑定到一个函数或者可调用对象上。当std::packaged_task<>对象被调用时,它就调用相关联的函数或者可调用对象,并且让future就绪,将返回值作为关联数据存储。这可以被用作线程池的构件,或者其他任务管理模式,例如在每个任务自己的线程上运行,或者一个特定的后台线程按顺序运行所有任务。
如果一个大型操作可以分为许多包含子任务,其中每一个都可以封装在一个std::packaged_task<>实例中,然后将该实例传给任务调度器或线程池。这样就抽象出了任务的详细信息,调度程序仅需要处理std::packaged_task<>实例,而非各个函数。
std::packaged_task<>类模板的模板参数为函数签名,比如void()表示无参数无返回值的函数,或者像int(string&,double*)表示接受一个对string的非const引用和double指针并返回int的函数。当你构造std::packaged_task实例的时候,你必须传入一个函数或者可调用对象,它可以接受指定的参数并且返回指定的类型。类型无需严格匹配,你可以用一个接受int并返回float的函数构造std::packaged_task<double(double)>,因为这些类型是可以隐式转换的。
指定的函数签名的返回类型确定了从get_future()成员函数返回std::future<>的类型。
#include <iostream>
#include <thread>
#include <mutex>
#include <future>using namespace std;
int func(int i)
{return 10 + i;
}
int main()
{std::packaged_task<int(int)> pt(func); //int(int)是因为返回值是int,函数参数也是int //将函数打包起来std::future<int> fu = pt.get_future(); // 并将结果返回给futurestd::thread t(std::ref(pt), 1);std::cout << fu.get() << std::endl;std::cout << std::this_thread::get_id() << std::endl;t.join();return 0;
}
结果:
std::promise
std::promise是一个类模板,它的作用是在不同的线程中实现数据的同步,与future结合使用,也间接实现了future在不同线程间的同步。
promise还有一个函数是set_value_at_thread_exit()这个翻译一下就可以直到它的作用是当在这个线程执行结束的时候才会将future的状态设置为ready,而set_value()则直接将future的状态设置为ready。需要注意的是在使用的过程中不能多次set_value(),也不能多次get_future()和多次get(),因为一个promise对象只能和一个对象相关联,否则就会抛出异常。
#include <iostream>
#include <future>
#include <thread>int fun(int x, std::promise<int>& p) {x++;x *= 10;p.set_value(x);std::cout << std::this_thread::get_id() << std::endl;return x;
}
int main()
{std::promise<int> p;std::future<int> fu = p.get_future(); // 并将结果返回给futurestd::thread t(fun, 1, std::ref(p));std::cout << fu.get() << std::endl; // 当promise还没有值的时候在此等待std::cout << std::this_thread::get_id() << std::endl;t.join();return 0;
}
std::async
其实这个函数是对上面的对象的一个整合,async先将可调用对象封装起来,然后将其运行结果返回到promise中,这个过程就是一个面向future的一个过程,最终通过future.get()来得到结果。它的实现方法有两种,一种是std::launch::async,这个是直接创建线程,另一种是std::launch::deferred,这个是延迟创建线程(当遇到future.get或者future.wait的时候才会创建线程),这两个参数是std::async的第一个参数,如果没有使用这个两个参数,也就是第一个参数为空的话,那么第一个参数默认为std::launch::async | std::launch::deferred,这个就不可控了,由操作系统根据当时的运行环境来确定是当前创建线程还是延迟创建线程。那么std::async的第二个参数就是可调用对象的名称,第三个参数就是可调用对象的参数。
#include <iostream>
#include <thread>
#include <mutex>
#include <future>using namespace std;
int func(int i)
{return 10 + i;
}
int main()
{std::future<int> fu = std::async(std::launch::async, func, 6); cout << fu.get() << endl;return 0;
}
等待自多个线程
如果需要多余一个线程等待同一个事件则需要使用std::shared_future来代替。
有时间限制的等待
前面介绍所有阻塞都会调用一个不确定的时间段,挂起线程直至等待的事件发生。在许多情况下是没问题的,但在某些情况下你会希望给等待时间加一个限制。
有两类可供指定的超时:一为基于时间段的超时,即等待一个指定的时间长度(例如30ms)或者绝对超时,即等到下一个时间点(例如2022.01.29 10:10:10)。
处理基于时间段超时的变量具有_for后缀,处理绝对超时的变量具有_until后缀。
例如:std::condition_variable具有两个重载版本的wait_for()成员函数和两个wait_unitil()成员函数。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- GUI编程基础03贪吃蛇
文章目录GUI编程基础03贪吃蛇GUI编程基础03贪吃蛇 import javax.swing.*;//游戏的主启动类 public class StartGame {public static void main(String[] args) {JFrame jFrame new JFrame("贪吃蛇");jFrame.setBounds(10,10,900,720);jFrame.setResizable(false);/…...
2024/4/13 23:02:40 - 抓包神器:Fiddler Everywhere
学习完HTTPS,并且使用了Wireshark进行抓包分析,本文再来体验一个抓包神器:Fiddler,其主要职责是抓取应用层报文,并且在抓移动端报文特别方便,让我们赶紧发车。 本文实际使用的是Fiddler Everywhere…...
2024/5/9 0:59:16 - 这一次,彻底读懂Mysql执行计划
一些变体 explain extended select ... 复制代码上述的语句是将表格形式的执行计划转化成 select语句,在使用 show warnings可以得到mysql优化器优化后的查询语句。 explain partitions select ... 复制代码用于分区表的 EXPLAIN 2、执行计划包含的信息 不同版本…...
2024/4/5 3:39:46 - DFS+回溯算法专题
基础知识 回溯法是一种选优搜索法(试探法),被称为通用的解题方法,这种方法适用于解一些组合数相当大的问题。通过剪枝(约束限界)可以大幅减少解决问题的计算量(搜索量)。 深度优先…...
2024/5/8 17:23:21 - Linux dmidecode命令的使用
一、dmidecode简介 dmidecode是Linux系统中自带的硬件查询工具;dmidecode的作用是将DMI数据库中的信息进行解码,然后以可读的方式显示。DMI(Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,D…...
2024/5/9 1:44:24 - c# 自定义List排序
自定义List排序sort返回排序的几种实现方式List.Sort(Comparison comparison)List.Sort(IComparer Comparer)刚使用sort排序又又又又又忘了,返回1(大于0即可),-1(小于0即可)是怎么排序了,果然是…...
2024/5/8 15:32:33 - selenium安装--谷歌(from selenium.webdriver import Chrome)
写代码有个习惯,什么类型的代码就以它定义文件名,这就导致遇到了这个错误。 百度了好多解决办法,但都没有得到解决。最后看到了这样一句话“ 看看自己报错的代码路径下是不是有一个叫selenium.py的文件,如果有,把名字…...
2024/5/9 1:56:07 - Apifox学习记录(一)
目录1.前言2.初识Apifox2.1 Apifox的名字2.2 Apifox是什么?2.3 功能特性2.4 学习途径3. 使用Apifox3.1 安装3.2 启动1.前言 偶然的机会发现接口测试工具Apifox,看到介绍说的是挺好用的接口调试、自动化测试的工具,因此进行学习。 2.初识Api…...
2024/5/8 12:40:31 - 什么是数据结构
文章目录前言一、线性表1.顺序表2.链表3.栈和队列二、数存储结构三、图存储结构总结前言 数据存储方式有哪几种呢?本节将对数据结构的学习内容做一个简要的总结。 数据结构大致包含以下几种存储结构: 线性表,还可以细分为顺序表、链表、栈和…...
2024/5/9 1:41:29 - 数据类型扩展及面试题
数据类型扩展及面试题讲解 整数拓展: 进制 二进制(0b开头) 十进制 八进制(0开头) 十六进制(0x开头) int y20; int y2020; int y30x20;浮点拓展: float double float g0.1f; //等…...
2024/5/8 19:55:25 - Java中数组的简单了解
数组 数组的基本格式 //先定义一个数组的类型,再创建数组的空间。 int num[]; num[]new int[10];//这里创建10个数组 //或者是将其合并在一起写 int num[]new int[10];例子: package com.method;public class Demo07 {public static void main(String…...
2024/4/13 23:03:45 - scrapy初体验之settings、spider、items、pipelines
Scrapy到目前为止依然是这个星球上最流行的爬虫框架. 摘一下官方给出对scrapy的介绍 An open source and collaborative framework for extracting the data you need from websites. In a fast, simple, yet extensible way. scrapy的特点: 速度快, 简单, 可扩展性强. 创建…...
2024/4/13 23:03:40 - leetcode每日一题1765. 地图中的最高点 简单的多源BFS最短路问题 模板题
📖本篇内容:leetcode每日一题1765. 地图中的最高点 简单的多源BFS最短路问题 模板题 📑 文章专栏:leetcode每日一题《打卡日常》 📆 最近更新:2022年1月28日 leetcode每日一题1996. 游戏中弱角色的数量 排…...
2024/4/15 22:34:02 - 班农注定落得如此下场
53岁的班农,凭借宣扬“白人至上”理念的班农无意间得到了默瑟家族基金会的青睐,在其支助下,班农担任上了一家英国公司“剑桥分析”的董事会副主席。该公司在之后参与推动英国脱欧及干涉2016年美国大选的政治活动,班农的政治履历又…...
2024/4/17 12:01:24 - 体验国际编程大赛(完成报名可抽奖)
第十届CodeVita国际编程大赛由世界500强塔塔集团旗下TCS(位于上海张江)举办,往届已吸引全球超100多万名学生参与,是个体验国际舞台、交流学习的好机会! 限20届-25届学生报名,参与初赛均可轻松获得TCS颁发的…...
2024/4/7 18:45:16 - Android Retrofit2随记
注解、反射、代理模式: Java:注解和反射 - opendragonhuang - 博客园 创建Retrofit使用 建造者模式 Retrofit其实是将OkHttp进行了封装; 解决了Okhttp请求完数据不能自动切回主线程的问题; 在build时,创建了一个主…...
2024/4/7 18:45:15 - C++中类的静态变量的特性及使用方法
静态成员变量 静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。 静态数据成员 在…...
2024/4/13 23:04:00 - 红帽 Linux Redhat6.4安装MySQL 5.1
[rootlocalhost /]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4 (Santiago) 指定yum源, [rootWebServer ~]# vi /etc/yum.repos.d/rhel-source.repo 区分大小写,不要出错 新建以下内容 固定格式:[rhel-source-l…...
2024/4/25 9:42:13 - 2021-2027中国宠物服装市场现状研究分析与发展前景预测报告
【报告篇幅】:118 【报告图表数】:161 【报告出版时间】:2021年12月 报告摘要 2021年中国宠物服装市场销售收入达到了 万元,预计2028年可以达到 万元,2022-2028期间年复合增长率(CAGR)为 %。中国市场核心厂商包括Hur…...
2024/4/13 23:03:35 - openLooKeng算子接口和执行流程
1 openLooKeng 算子接口 1.1 openLooKeng算子相关类 ▲ 图1-1 算子相关类 openLooKeng生成物理执行计划后,真正执行计划的是一个一个的算子(即Operator)。openLooKeng中将算子抽象为Operator接口,将算子工厂抽象为OperatorFacto…...
2024/4/7 18:45:11
最新文章
- EasyExcel自定义数据格式化
自定格式常量类 public class ExcelFormatConstants {public static final String DATE_FORMAT "yyyy-MM-dd";public static final String NUMBER_FORMAT_DEFAULT "#,##0.00";public static final String NUMBER_FORMAT_FOUR_DECIMAL "#,##0.0000…...
2024/5/9 6:32:10 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - 如何构建数据指标体系
构建一套科学、完备且实用的数据分析指标体系是一项系统性的工程,其核心在于将业务理解、目标设定、度量标准选择、数据采集与整理、数据分析、指标体系构建、持续优化与改进等多个环节有机融合,以实现对业务状况的精准刻画、趋势预测及决策支持。以下是…...
2024/5/8 11:23:02 - Go语言中如何实现继承
完整课程请点击以下链接 Go 语言项目开发实战_Go_实战_项目开发_孔令飞_Commit 规范_最佳实践_企业应用代码-极客时间 Go语言中没有传统意义上的类和继承的概念,但可以通过嵌入类型(embedded types)来实现类似的功能。嵌入类型允许一个结构…...
2024/5/5 8:37:47 - c++类的继承方式
在 C 中,类的继承方式有三种:公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance)。这些继承方式决定了派生类对基类成员的访问权限。 …...
2024/5/8 20:45:20 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到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/9 4:20:59 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
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/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/8 20:48:49 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/8 19:33:07 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/8 20:38:49 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含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