并发容器

  • 为什么需要并发容器

java提供了很多丰富的容器,主要可以分为四大类别List、Map、Set、Queue,但是这些容器的实现类有各种各样的缺点,如我们常见的ArrayList、HashMap是线程不安全的,如Hashtable、Vector是线程安全,但是效率很差,这些线程安全的容器是通过synchronized关键字来实现的,这样做就削弱了程序的并发性,所以并发容器就诞生了。

  • 并发容器的定义

并发容器是专门针对多线程并发设计的,使用了锁分段技术,只对操作位置进行同步操作,但是其它其它线程可以对没有操作的位置继续进行访问。

1、ConcurrentHashMap

1.1数据结构

ConcurrentHashMap是java.util.concurrent(JUC)包下的成员,它支持线程安全、支持多线程操作时并发读写操作,在jdk1.7中,它采用的是Segment分段锁,但是在1.8中,使用的是CAS+synchronized,底层使用的是数组+链表+红黑树

  • jdk1.7

我懵了,面试官一直和我聊并发容器

 

 

jdk1.7中的ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成,Segment是一种可重入锁(ReentrantLock),每个Segment都包含一个HashEntry[]数组,每个HashEntry是一个链表结构,当对HashEntry数组的数据进行修改时,必须首先获得与它对应的Segment锁。ConcurrentHashMap使用锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据分配一把锁,当一个线程占用锁访问其中一个段数据的时候,其它段的数据也能被其它线程访问。

  • jdk1.8

我懵了,面试官一直和我聊并发容器

 

jdk1.8抛弃了Segment分段锁,采用的是CAS+synchronized,它的改进是为了解决查询链表效率太低的问题,将1.7中的HashEntry改为node,取消的ReentrantLock改为了synchronized,采用的数据结构为数组+链表+红黑树,保证了查询效率。

1.2代码测试

为了验证ConcurrentHashMap效率如何,我们编写一个Demo来测试下,将它与Hashtable比较,Hashtable容器是使用synchronized来保证线程安全的。

对比代码测试

/*** @Author: Simon Lang* @Date: 2020/5/12 10:40*/
public class test_concurrentHashMap {public static void main(String[] args){//使用HashTable测试final Map<String,String> map=new Hashtable<String, String>();//使用concurrentHashMap测试
//        final Map<String,String> map=new ConcurrentHashMap<String, String>();Thread[] array=new Thread[1000];final Random r=new Random();//定义一个门栓final CountDownLatch latch=new CountDownLatch(array.length);long begin=System.currentTimeMillis();for(int i=0;i<array.length;i++){array[i]=new Thread(new Runnable() {@Overridepublic void run() {for(int j=0;j<10000;j++){map.put("key"+r.nextInt(1000000),"value"+r.nextInt(1000000));}latch.countDown();}});}for (Thread t:array) {t.start();}try {latch.await();} catch (InterruptedException e) {e.printStackTrace();}long end=System.currentTimeMillis();System.out.println("执行时间为:"+(end-begin));}}

测试结果

类型消耗时间Hashtable8947msConcurrentHashMap7265ms

在多线程并发情况下,ConcurrentHashMap比HashTable效率高。

2、CopyOnWriteArrayList

CopyOnWriteArrayList是juc包下提供的一个并发安全的ArrayList,它的主要特点是写操作时需要复制集合,会创建一个新的底层数组,读操作时只需要获得数组下标即可,它的工作方式采用的是用空间换时间,适用于读多写少的场景中。

2.1源码分析

它的底层是数据结构是数组

private transient volatile Object[] array;

它仅在写/修改/删除操作时存在线程安全,所以在这些操作中加入了ReentrantLock来保证线程安全,以写操作为例

  public boolean add(E e) {//获取锁final ReentrantLock lock = this.lock;//加锁lock.lock();try {//获得当前集合中保存数据的数组Object[] elements = getArray();//获取该数组的长度int len = elements.length;//拷贝当前的数组,并让其长度+1Object[] newElements = Arrays.copyOf(elements, len + 1);//将加入的元素放在新数组的最后一位newElements[len] = e;//将数组的引用指向新数组setArray(newElements);return true;} finally {//释放锁lock.unlock();}}

图解

我懵了,面试官一直和我聊并发容器

 

添加元素时先将原数组复制,然后再将添加的元素放置到新数组的末尾,然后将数组的引用指向新数组。

2.2、对比代码测试

Vector实现线程安全的方法采用的是synchronized关键字,即每个方法执行的时候都要去获取锁,性能会下降,而CopyOnWriteArrayList仅在写/修改/删除操作上加锁,读操作不加锁,我们编写一个Demo来测试下

测试代码

/*** @Author: Simon Lang* @Date: 2020/5/12 11:38*/
public class test_copyonWriterlist {public static void main(String[] args){//测试Vectot
//       final List list=new Vector();//测试CopyOnWriterArrayListfinal List<String> list=new CopyOnWriteArrayList<String>();Thread[] array=new Thread[100];final Random r=new Random();//定义一个门栓final CountDownLatch latch=new CountDownLatch(array.length);long begin=System.currentTimeMillis();for (int i=0;i<array.length;i++){array[i]=new Thread(new Runnable() {@Overridepublic void run() {for (int j=0;j<1000;j++){list.add("value"+r.nextInt(100000));}latch.countDown();}});}for (Thread t:array){t.start();}try {latch.await();} catch (InterruptedException e) {e.printStackTrace();}long end=System.currentTimeMillis();System.out.println("执行时间:"+(end-begin));}
}

测试结果

类型消耗时间Vector122CopyOnWriteArrayList5771

测试结果表明,在写操作时,CopyOnWriterArrayList消耗的时间明显高于Vector,所以CopyOnWriterArrayList适用于读操作的场景中。

3、Queue

3.1、ConcurrentLinkedQueue

在并发编程中,有两种方法可以实现线程安全的队列,一种使用的是阻塞算法,该算法使用同一个锁(入队出队使用同一把锁)或中两把锁(入队和出队使用不同的锁)实现,另一种是使用非阻塞算法,该算法是使用循环CAS的方法来实现,我们这里主要使用非阻塞算法的方法来实现ConcurrentLinkedQueue。

3.1.1数据结构

ConcurrentLinkedQueue有head结点和tail结点组成,每个结点有由节点元素(item)和下一个结点的引用(next)组成,结点之间就是通过这个next关联起来,组成一个链表结构的队列

volatile E item;
volatile Node<E> next;

结构图

我懵了,面试官一直和我聊并发容器

 

3.1.2入队分析

入队就是将入队结点添加的队列的尾部,我们以分别添加4个元素为例来讲解

我懵了,面试官一直和我聊并发容器

 

 

入队主要分两个步骤:①将入队结点设置为当前队尾结点的下一个结点②更新tail结点,如果tail结点的next结点不为空,则将入队结点设置为tail结点,如果tail结点的next结点为空,则将入队结点设置为tail的next结点,所以tail结点并不总是尾结点。

入队源码分析

public boolean add(E e) {return offer(e);
}public boolean offer(E e) {// 如果e为null,则直接抛出NullPointerException异常checkNotNull(e);// 创建入队节点final Node<E> newNode = new Node<E>(e);// 循环CAS直到入队成功// 1、根据tail节点定位出尾节点(last node);2、将新节点置为尾节点的下一个节点;3、casTail更新尾节点for (Node<E> t = tail, p = t;;) {// p用来表示队列的尾节点,初始情况下等于tail节点// q是p的next节点Node<E> q = p.next;// 判断p是不是尾节点,tail节点不一定是尾节点,判断是不是尾节点的依据是该节点的next是不是null// 如果p是尾节点if (q == null) {// 设置p节点的下一个节点为新节点,设置成功则casNext返回true;否则返回false,说明有其他线程更新过尾节点if (p.casNext(null, newNode)) {// Successful CAS is the linearization point// for e to become an element of this queue,// and for newNode to become "live".// 如果p != t,则将入队节点设置成tail节点,更新失败了也没关系,因为失败了表示有其他线程成功更新了tail节点if (p != t) // hop two nodes at a timecasTail(t, newNode);  // Failure is OK.return true;}// Lost CAS race to another thread; re-read next}// 多线程操作时候,由于poll时候会把旧的head变为自引用,然后将head的next设置为新的head// 所以这里需要重新找新的head,因为新的head后面的节点才是激活的节点else if (p == q)// We have fallen off list.  If tail is unchanged, it// will also be off-list, in which case we need to// jump to head, from which all live nodes are always// reachable.  Else the new tail is a better bet.p = (t != (t = tail)) ? t : head;// 寻找尾节点else// Check for tail updates after two hops.p = (p != t && t != (t = tail)) ? t : q;}
}

整个入队就做两件事情:①定位尾结点②使用CAS算法将入队结点设置为尾结点的next结点,不成功则重试

3.1.3出队分析

出队列就是从队列里返回一个节点元素,并清空该节点对元素的引用

我懵了,面试官一直和我聊并发容器

 

 

并不是每次出队时都要更新head结点,当head结点有元素时,直接弹出head结点里的元素,而不会更新head结点。只有当head结点里没有元素时,出队操作才会更新head结点。

3.2、LinkedBlockingQueue

LinkedBlockingQueue是一种用链表实现的有界阻塞队列,队列的默认长度为Integer.MAX_VALUE,此队列是按照先进先出的原则对元素进行排序。

我们编写一个Demo,一个线程不断的向队列中添加元素,另外的几个线程不断的从队列中取出元素,是一种生产者--消费者模式。

测试代码

/*** @Author: Simon Lang* @Date: 2020/5/12 14:50*//*** put:队列满时阻塞* take:队列为0时阻塞*/
public class test_linkedBlockingqueue {final BlockingQueue<String> queue=new LinkedBlockingQueue<String>();final Random r=new Random();public static void main(String[] args){final test_linkedBlockingqueue t=new test_linkedBlockingqueue();new Thread(new Runnable() {@Overridepublic void run() {while (true){try {t.queue.put("value"+t.r.nextInt(1000));TimeUnit.SECONDS.sleep(1);}catch (InterruptedException e){e.printStackTrace();}}}},"producer").start();for (int i=0;i<3;i++){new Thread(new Runnable() {@Overridepublic void run() {while (true){try {System.out.println(Thread.currentThread().getName()+" - "+t.queue.take());} catch (InterruptedException e) {e.printStackTrace();}}}},"consumer"+i).start();}}
}

部分测试结果

我懵了,面试官一直和我聊并发容器

 

3.3、ArrayBlockingQueue

ArrayBlockingQueue是一个用数组实现的有界阻塞队列,此队列按照FIFO的原则对元素进行排序。根据调用API(add/put/offer)不同,有不同的特性

我们编写一个Demo分别测试这几种方法

测试代码

/*** @Author: Simon Lang* @Date: 2020/5/12 15:08*/
public class test_arrayBlockingqueue {final BlockingQueue<String> queue=new ArrayBlockingQueue<String>(3);public static void main(String[] args){final test_arrayBlockingqueue t=new test_arrayBlockingqueue();for (int i=0;i<5;i++){//addMethod
//            System.out.println("add method: "+ t.queue.add("value"+i));
//            try {
//                t.queue.put("put"+i);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//            System.out.println("put method : "+i);
//            System.out.println("offer method : " +t.queue.offer("value"+i));try {System.out.println("offer method :"+t.queue.offer("value"+i,1, TimeUnit.SECONDS));} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(t.queue);}
}
  • add方法在容量不足的时候,抛出异常

我懵了,面试官一直和我聊并发容器

 

  • put方法在容量不足的时候,阻塞等待

我懵了,面试官一直和我聊并发容器

 

  • offer方法

单参数offer方法,不阻塞,当容量不足的时候,返回false,放弃超出容量的数据

我懵了,面试官一直和我聊并发容器

 

三参数offer方法offer(value,times,timeout),容量不足的时候,阻塞times时长,如果在阻塞时间内,有容量空闲,新增数据返回true;如果阻塞时长范围内无容量空闲,放弃超出容量的数据,返回false。

我懵了,面试官一直和我聊并发容器

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

相关文章

  1. Java线程状态转换

    文章目录学会线程状态转换能做什么?常说的线程Java线程Java线程状态转化实际应用结束语 学会线程状态转换能做什么?Java体系和计算机系统联系起来 定位问题有理论支持常说的线程 常说的线程是操作系统层面的线程, 在操作系统层面进程是分配资源的最小单位, 线程是调度的最小单…...

    2024/4/17 5:56:04
  2. 一个哥们4月份面试回来的总结整理如下!成功拿下滴滴美团offer

    最近技术交流群里面很多群友在最近面试完之后,有的还将面试题带出来了,都将面试题都发到群里一起讨论,还是比较火热的,都将答案讨论出来了,但是面试题都比较零散,所以小编把自己搜集的面试题统一总结了下,整理成pdf,将近500页有1000多题,共大家学习,内容涵盖:Java、…...

    2024/4/17 5:55:34
  3. 计算机网络(二十一):网络层概述

    一个具有H1、H2两台主机和在H1与H2之间的路径上有几台路由器的简单网络。假设H1正在向H2发送信息,H1中的网络层取得来自于H1运输层的报文段,将每个报文段封装成一个数据报(即一个网络层的分组),然后将该数据报向相邻路由器R1发送。在接收方主机H2,网络层接收来自相邻路由器…...

    2024/4/17 5:56:58
  4. kitti dataset depth ground truth

    感觉kitti数据集上的depth数据ground truth,好像是Lidar数据获取,想知道有没有真正的depth map,查到一个网址的资料: How to obtain a dense ground truth image for depth prediction in kitti dataset?先做下记录,之后再好好看看。...

    2024/4/17 5:57:10
  5. lt1450. 在既定时间做作业的学生人数

    lt1450. 在既定时间做作业的学生人数问题我的思路代码官方解答 问题 给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。 已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。 请返回在查询时间…...

    2024/5/1 15:36:10
  6. 在vue文件中使用render函数封装实现动态组件

    近期遇到一个vue项目中的table页面,数据和模板强耦合在一个页面中,看起来比较复杂,维护较不方便,而该页面又重复性较高,于是尝试在vue中用循环渲染dom元素,抽离公共部分配置化,很不幸的是v-for并不支持动态的dom元素插入,那么怎么用vue实现动态dom元素节点的动态渲染呢…...

    2024/4/17 5:56:52
  7. 深度探索 Gradle 自动化构建技术(一、Gradle 核心配置篇)

    声明:博客分享自掘金,写得太好了,能学习到很多,所以想分享推广,如果觉得侵权,请联系我立马删除 作者:jsonchao 文章标题:深度探索 Gradle 自动化构建技术(一、Gradle 核心配置篇) 博客地址:https://juejin.im/post/5e924273f265da47f079379c 前言 成为一名优秀的And…...

    2024/4/18 0:41:47
  8. python的函数(一)

    函数 我们写过九九乘法表,但如果我要七七乘法表或五五乘法表的话,你会看到三者代码极其类似,只是循环变量不同,那么如何做到代码重用,而不是简单拷贝黏贴修改呢,其实可是使用函数完成这一功能 def table(row,col):for i in range(1, row + 1):for j in range(1, col + 1)…...

    2024/4/15 8:20:50
  9. 平面最近点对问题:luogu1429

    luogu1429解法:分而治之分治数组按x升序排序,调用递归函数。是为了得到区间的最近点对的长度。处理如下以中间的数字为中心线进行分割,分别对和进行处理。如果区间的长度比较小,可直接暴力计算,比如以下是。 合并已知两边的最近点对的距离为mindist。现在mid两边各选择一个…...

    2024/4/23 14:47:51
  10. 算法分析与设计-第十一次作业-贪心算法-哈夫曼编码

    1、问题2、解析3、设计 HuffmanTree Huffman(Minheap H) { int i; HuffmanTree T; for (i = 1; i < H->capacity; i++) { T = (HuffmanTree)malloc(sizeof(struct TreeNode)); T->Left = &DeleteMin(H); T->Right = &DeleteMin(H); T->weight = …...

    2024/4/23 14:47:52
  11. 问题列表

    1、通过listener监听进行事件的构建,或者进行observer设计模式实现2、Tomcat可以认为是servlet的容器管理,需要遵守servlet规范所以这也是为什么他采用了NIO的管道复用依然性能不如netty的原因。内置leader模块进行类加载的管理,container用于servlet的生命周期管理,servic…...

    2024/4/23 14:47:55
  12. Session

    什么是Session:服务器会给每一个用户(浏览器)创建一个Session对象 一个session独占一个浏览器,只要浏览器没有关闭,这个session就存在! 用户登录之后,整个当前网站都是可以访问的----保存用户的信息,保存购物车的信息session和cookie的区别:Cookie是把用户的数据写给用…...

    2024/4/23 14:47:54
  13. 文件泄露漏洞

    导语 这些信息泄露的漏洞只有马虎的程序员才会犯,希望大家都不要犯错哦~ 这些题在ctfhub里都可以重做哒。网站源码 可能会有马虎的程序员将整个网站的源码打包起来且放在了网站目录下,导致我们可以直接获取网站的源码,给我们进一步渗透提供了更加广泛的思路。 题目给了我们常…...

    2024/5/4 3:10:52
  14. 【Mybatis笔记--全面版】

    Mybatis Mybaits简介Apache开源项目,迁移到Google。从ibatis到mybatis 优秀的持久层框架,对jdbc操作数据库的步骤进行封装 使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码…...

    2024/4/23 14:47:48
  15. python编程从入门到实践第十六章制作交易收盘价走势图

    python编程从入门到实践中第十六章中的制作交易收盘价走势图的内容 为什么在下图中没有 wd = [“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”] weekdays_int = [wd.index(w) + 1 for w in weekdays[1:idx_week]] 时的两个图结果…...

    2024/4/23 14:47:44
  16. html5css3项目2:scale缩放实现图片放大、分页效果圆圈放大图

    1、图片放大思路: scale比width放大的好处就是:放大时不对其他元素造成影响。 这里采用经过div盒子时进行放大,不过照片会溢出,所以要隐藏多出的部分。<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta…...

    2024/4/23 14:47:43
  17. 区块链共识算法的选取

    目前区块链逐渐向联盟链发展,共识问题也就变成了状态一致问题 Paxos共识算法 Paxos共识算法,在工程角度实现了一种最大化保障分布式系统一致性(存在极小的概率无法实现一致)的机制。 Raft算法 Raft算法Raft算法包括三种角色:Leader(领导者)、Candidate(候选领导者)和F…...

    2024/4/23 14:47:42
  18. JavaDoc初识

    JavaDocjavadoc命令是用来生成自己的API文档的参数信息@author 作者名@version 版本号@since 指明需要最早使用的jdk版本@param 参数名@return 返回值情况@throws 异常抛出情况E:\javadoc -encoding UTF-8 -charset UTF-8 Doc.java​ 在程序中写入文本注释后,可通过上述方法生…...

    2024/4/23 14:47:41
  19. ubantu安装百度网盘过程记录

    如果是Ubuntu、deepin等基于Debian GUN/Linux的发行版本的话可以下载deb格式的,如果是使用的Rdehat、中标麒麟、Centos、SUSE、Fedora可以下载rpm格式的包。我这里进入网址:https://pan.baidu.com/download 下载deb格式版本。成功下载到下载目录中:从该目录下打开终端,…...

    2024/4/23 14:47:40
  20. Java后台以树形结构返回省市区三级区域信息

    欢迎访问个人博客德鲁大叔撸代码 在前台页面很常见的一种需求是,以树形结构展示具有层级关系的数据。比如企业的部门信息、大部分管理系统的菜单、省市区信息等等。 具体如下图所示一、表创建以及数据导入 执行下面创建表sql,创建sys_region存具体信息,具体信息正在审核中,…...

    2024/4/23 14:47:39

最新文章

  1. 等保测评判断模拟题

    1、根据《信息安全等级保护管理办法》&#xff0c;第三级信息系统运营、使用单位应当依据国家管理规范和技术标准进行保护&#xff0c;国家有关信息安全职能部门对其信息安全等级保护工作进行强制监督、检查。() 2、根据《信息安全等级保护管理办法》&#xff0c;国家保密工…...

    2024/5/4 6:37:00
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. ROS2高效学习第十章 -- ros2 高级组件之大型项目中的 launch 其二

    ros2 高级组件之大型项目中的 launch 1 前言和资料2 正文2.1 启动 turtlesim&#xff0c;生成一个 turtle &#xff0c;设置背景色2.2 使用 event handler 重写上节的样例2.3 turtle_tf_mimic_rviz_launch 样例 3 总结 1 前言和资料 早在ROS2高效学习第四章 – ros2 topic 编程…...

    2024/5/3 15:22:43
  4. 汽车统一诊断服务UDS协议参考文章和视频

    UDS基础知识介绍-电子发烧友网 【图解UDS】UDS汽车诊断标准协议&#xff08;ISO14229&#xff09;带你入门到精通-有驾 车载测试之UDS诊断协议9&#xff1a;0x27服务&#xff1a;解锁ECU_哔哩哔哩_bilibili UDS诊断的22服务&#xff08;DID读取数据&#xff09;和2E服务&…...

    2024/5/2 2:41:27
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

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

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,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
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在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