转自:https://www.cnblogs.com/zedosu/p/6666984.html

摘要: 关于BIO和NIO的理解

最近大概看了ZooKeeper和Mina的源码发现都是用Java NIO实现的,所以有必要搞清楚什么是NIO。下面是我结合网络资料自己总结的,为了节约时间图示随便画的,能达意就行。

 

简介:

BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 
NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。 
AIO(NIO.2):异步非阻塞式IO,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。 

BIO 
同步阻塞式IO,相信每一个学习过操作系统网络编程或者任何语言的网络编程的人都很熟悉,在while循环中服务端会调用accept方法等待接收客户端的连接请求,一旦接收到一个连接请求,就可以建立通信套接字在这个通信套接字上进行读写操作,此时不能再接收其他客户端连接请求,只能等待同当前连接的客户端的操作执行完成。 
如果BIO要能够同时处理多个客户端请求,就必须使用多线程,即每次accept阻塞等待来自客户端请求,一旦受到连接请求就建立通信套接字同时开启一个新的线程来处理这个套接字的数据读写请求,然后立刻又继续accept等待其他客户端连接请求,即为每一个客户端连接请求都创建一个线程来单独处理,大概原理图就像这样: 
 

虽然此时服务器具备了高并发能力,即能够同时处理多个客户端请求了,但是却带来了一个问题,随着开启的线程数目增多,将会消耗过多的内存资源,导致服务器变慢甚至崩溃,NIO可以一定程度解决这个问题。


NIO 
同步非阻塞式IO,关键是采用了事件驱动的思想来实现了一个多路转换器。 
NIO与BIO最大的区别就是只需要开启一个线程就可以处理来自多个客户端的IO事件,这是怎么做到的呢? 
就是多路复用器,可以监听来自多个客户端的IO事件: 
A. 若服务端监听到客户端连接请求,便为其建立通信套接字(java中就是通道),然后返回继续监听,若同时有多个客户端连接请求到来也可以全部收到,依次为它们都建立通信套接字。 
B. 若服务端监听到来自已经创建了通信套接字的客户端发送来的数据,就会调用对应接口处理接收到的数据,若同时有多个客户端发来数据也可以依次进行处理。 
C. 监听多个客户端的连接请求和接收数据请求同时还能监听自己时候有数据要发送。 
 

总之就是在一个线程中就可以调用多路复用接口(java中是select)阻塞同时监听来自多个客户端的IO请求,一旦有收到IO请求就调用对应函数处理。 

各自应用场景 

到这里你也许已经发现,一旦有请求到来(不管是几个同时到还是只有一个到),都会调用对应IO处理函数处理,所以:

(1)NIO适合处理连接数目特别多,但是连接比较短(轻操作)的场景,Jetty,Mina,ZooKeeper等都是基于java nio实现。

(2)BIO方式适用于连接数目比较小且固定的场景,这种方式对服务器资源要求比较高,并发局限于应用中。


附录:下面附上一个别人写的java NIO的例子。 
服务端:  

  1. 1. package cn.nio;    
  2. 2.    
  3. 3. import java.io.IOException;    
  4. 4. import java.net.InetSocketAddress;    
  5. 5. import java.nio.ByteBuffer;    
  6. 6. import java.nio.channels.SelectionKey;    
  7. 7. import java.nio.channels.Selector;    
  8. 8. import java.nio.channels.ServerSocketChannel;    
  9. 9. import java.nio.channels.SocketChannel;    
  10. 10. import java.util.Iterator;    
  11. 11.    
  12. 12. /**  
  13. 13. * NIO服务端  
  14. 14. *  
  15. 15. */    
  16. 16. public class NIOServer {    
  17. 17.    //通道管理器    
  18. 18.    private Selector selector;    
  19. 19.    
  20. 20.    /**  
  21. 21.     * 获得一个ServerSocket通道,并对该通道做一些初始化的工作  
  22. 22.     * @param port  绑定的端口号  
  23. 23.     * @throws IOException  
  24. 24.     */    
  25. 25.    public void initServer(int port) throws IOException {    
  26. 26.        // 获得一个ServerSocket通道    
  27. 27.        ServerSocketChannel serverChannel = ServerSocketChannel.open();    
  28. 28.        // 设置通道为非阻塞    
  29. 29.        serverChannel.configureBlocking(false);    
  30. 30.        // 将该通道对应的ServerSocket绑定到port端口    
  31. 31.        serverChannel.socket().bind(new InetSocketAddress(port));    
  32. 32.        // 获得一个通道管理器    
  33. 33.        this.selector = Selector.open();    
  34. 34.        //将通道管理器和该通道绑定,并为该通道注册SelectionKey.OP_ACCEPT事件,注册该事件后,    
  35. 35.        //当该事件到达时,selector.select()会返回,如果该事件没到达selector.select()会一直阻塞。    
  36. 36.        serverChannel.register(selector, SelectionKey.OP_ACCEPT);    
  37. 37.    }    
  38. 38.    
  39. 39.    /**  
  40. 40.     * 采用轮询的方式监听selector上是否有需要处理的事件,如果有,则进行处理  
  41. 41.     * @throws IOException  
  42. 42.     */    
  43. 43.    @SuppressWarnings("unchecked")    
  44. 44.    public void listen() throws IOException {    
  45. 45.        System.out.println("服务端启动成功!");    
  46. 46.        // 轮询访问selector    
  47. 47.        while (true) {    
  48. 48.            //当注册的事件到达时,方法返回;否则,该方法会一直阻塞    
  49. 49.            selector.select();    
  50. 50.            // 获得selector中选中的项的迭代器,选中的项为注册的事件    
  51. 51.            Iterator ite = this.selector.selectedKeys().iterator();    
  52. 52.            while (ite.hasNext()) {    
  53. 53.                SelectionKey key = (SelectionKey) ite.next();    
  54. 54.                // 删除已选的key,以防重复处理    
  55. 55.                ite.remove();    
  56. 56.                // 客户端请求连接事件    
  57. 57.                if (key.isAcceptable()) {    
  58. 58.                    ServerSocketChannel server = (ServerSocketChannel) key    
  59. 59.                            .channel();    
  60. 60.                    // 获得和客户端连接的通道    
  61. 61.                    SocketChannel channel = server.accept();    
  62. 62.                    // 设置成非阻塞    
  63. 63.                    channel.configureBlocking(false);    
  64. 64.    
  65. 65.                    //在这里可以给客户端发送信息哦    
  66. 66.                    channel.write(ByteBuffer.wrap(new String("向客户端发送了一条信息").getBytes()));    
  67. 67.                    //在和客户端连接成功之后,为了可以接收到客户端的信息,需要给通道设置读的权限。    
  68. 68.                    channel.register(this.selector, SelectionKey.OP_READ);    
  69. 69.                        
  70. 70.                    // 获得了可读的事件    
  71. 71.                } else if (key.isReadable()) {    
  72. 72.                        read(key);    
  73. 73.                }    
  74. 74.    
  75. 75.            }    
  76. 76.    
  77. 77.        }    
  78. 78.    }    
  79. 79.    /**  
  80. 80.     * 处理读取客户端发来的信息 的事件  
  81. 81.     * @param key  
  82. 82.     * @throws IOException   
  83. 83.     */    
  84. 84.    public void read(SelectionKey key) throws IOException{    
  85. 85.        // 服务器可读取消息:得到事件发生的Socket通道    
  86. 86.        SocketChannel channel = (SocketChannel) key.channel();    
  87. 87.        // 创建读取的缓冲区    
  88. 88.        ByteBuffer buffer = ByteBuffer.allocate(10);    
  89. 89.        channel.read(buffer);    
  90. 90.        byte[] data = buffer.array();    
  91. 91.        String msg = new String(data).trim();    
  92. 92.        System.out.println("服务端收到信息:"+msg);    
  93. 93.        ByteBuffer outBuffer = ByteBuffer.wrap(msg.getBytes());    
  94. 94.        channel.write(outBuffer);// 将消息回送给客户端    
  95. 95.    }    
  96. 96.        
  97. 97.    /**  
  98. 98.     * 启动服务端测试  
  99. 99.     * @throws IOException   
  100. 100.     */    
  101. 101.    public static void main(String[] args) throws IOException {    
  102. 102.        NIOServer server = new NIOServer();    
  103. 103.        server.initServer(8000);    
  104. 104.        server.listen();    
  105. 105.    }    
  106. 106.    
  107. 107. }    

  
客户端:

  1.  1. package cn.nio;    
  2. 2.    
  3. 3. import java.io.IOException;    
  4. 4. import java.net.InetSocketAddress;    
  5. 5. import java.nio.ByteBuffer;    
  6. 6. import java.nio.channels.SelectionKey;    
  7. 7. import java.nio.channels.Selector;    
  8. 8. import java.nio.channels.SocketChannel;    
  9. 9. import java.util.Iterator;    
  10. 10.    
  11. 11. /**  
  12. 12. * NIO客户端  
  13. 13. *  
  14. 14. */    
  15. 15. public class NIOClient {    
  16. 16.    //通道管理器    
  17. 17.    private Selector selector;    
  18. 18.    
  19. 19.    /**  
  20. 20.     * 获得一个Socket通道,并对该通道做一些初始化的工作  
  21. 21.     * @param ip 连接的服务器的ip  
  22. 22.     * @param port  连接的服务器的端口号           
  23. 23.     * @throws IOException  
  24. 24.     */    
  25. 25.    public void initClient(String ip,int port) throws IOException {    
  26. 26.        // 获得一个Socket通道    
  27. 27.        SocketChannel channel = SocketChannel.open();    
  28. 28.        // 设置通道为非阻塞    
  29. 29.        channel.configureBlocking(false);    
  30. 30.        // 获得一个通道管理器    
  31. 31.        this.selector = Selector.open();    
  32. 32.            
  33. 33.        // 客户端连接服务器,其实方法执行并没有实现连接,需要在listen()方法中调    
  34. 34.        //用channel.finishConnect();才能完成连接    
  35. 35.        channel.connect(new InetSocketAddress(ip,port));    
  36. 36.        //将通道管理器和该通道绑定,并为该通道注册SelectionKey.OP_CONNECT事件。    
  37. 37.        channel.register(selector, SelectionKey.OP_CONNECT);    
  38. 38.    }    
  39. 39.    
  40. 40.    /**  
  41. 41.     * 采用轮询的方式监听selector上是否有需要处理的事件,如果有,则进行处理  
  42. 42.     * @throws IOException  
  43. 43.     */    
  44. 44.    @SuppressWarnings("unchecked")    
  45. 45.    public void listen() throws IOException {    
  46. 46.        // 轮询访问selector    
  47. 47.        while (true) {    
  48. 48.            selector.select();    
  49. 49.            // 获得selector中选中的项的迭代器    
  50. 50.            Iterator ite = this.selector.selectedKeys().iterator();    
  51. 51.            while (ite.hasNext()) {    
  52. 52.                SelectionKey key = (SelectionKey) ite.next();    
  53. 53.                // 删除已选的key,以防重复处理    
  54. 54.                ite.remove();    
  55. 55.                // 连接事件发生    
  56. 56.                if (key.isConnectable()) {    
  57. 57.                    SocketChannel channel = (SocketChannel) key    
  58. 58.                            .channel();    
  59. 59.                    // 如果正在连接,则完成连接    
  60. 60.                    if(channel.isConnectionPending()){    
  61. 61.                        channel.finishConnect();    
  62. 62.                            
  63. 63.                    }    
  64. 64.                    // 设置成非阻塞    
  65. 65.                    channel.configureBlocking(false);    
  66. 66.    
  67. 67.                    //在这里可以给服务端发送信息哦    
  68. 68.                    channel.write(ByteBuffer.wrap(new String("向服务端发送了一条信息").getBytes()));    
  69. 69.                    //在和服务端连接成功之后,为了可以接收到服务端的信息,需要给通道设置读的权限。    
  70. 70.                    channel.register(this.selector, SelectionKey.OP_READ);    
  71. 71.                        
  72. 72.                    // 获得了可读的事件    
  73. 73.                } else if (key.isReadable()) {    
  74. 74.                        read(key);    
  75. 75.                }    
  76. 76.    
  77. 77.            }    
  78. 78.    
  79. 79.        }    
  80. 80.    }    
  81. 81.    /**  
  82. 82.     * 处理读取服务端发来的信息 的事件  
  83. 83.     * @param key  
  84. 84.     * @throws IOException   
  85. 85.     */    
  86. 86.    public void read(SelectionKey key) throws IOException{    
  87. 87.        //和服务端的read方法一样    
  88. 88.    }    
  89. 89.        
  90. 90.        
  91. 91.    /**  
  92. 92.     * 启动客户端测试  
  93. 93.     * @throws IOException   
  94. 94.     */    
  95. 95.    public static void main(String[] args) throws IOException {    
  96. 96.        NIOClient client = new NIOClient();    
  97. 97.        client.initClient("localhost",8000);    
  98. 98.        client.listen();    
  99. 99.    }    
  100. 100.    
  101. 101. }    
  102.    


http://blog.csdn.net/jiyiqinlovexx/article/details/42619097 

 

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

相关文章

  1. C语言移位操作符易错点

    1.逻辑移位和算术移位差异逻辑移位是无论左移还是右移,移出都用0来填补。算术移位分为两种情况,针对无符号值,那么算术移位和逻辑移位是相同的;若有符号值,算术左移等同于逻辑右移,而算术右移,需要根据符号位进行填充,若符号位为1则填充1,反之填充0。注:在标准中只针…...

    2024/4/14 21:43:38
  2. c# 后台异步请求接口

    第一步:引用程序集:Systen.Net.Http 第一种方式: 异步 Get请求HttpClient client = new HttpClient(); //client.DefaultRequestHeaders.Add("Cookie","xxx"); string result = await client.GetStringAsync("http://localh…...

    2024/4/17 12:58:31
  3. 【电子书】Java并发编程从入门到精通---PDF高清版

    Java并发编程从入门到精通—PDF高清版 下载地址:链接: https://pan.baidu.com/s/1IJ9eQ9knEdOtdz-Ju-enfQ 提取码: fesx...

    2024/4/14 23:09:13
  4. 使用neo4j-import工具导入数据

    从Neo4j2.2版本开始,系统就自带了一个大数据量的导入工具:neo4j-import,可支持并行、可扩展的大规模csv数据导入(本例版本为:3.4.7版本) 1.前提条件 关闭neo4j 无法在原有数据库添加,只能重新生成一个数据库 导入文件格式为csv 2.参数说明 --into:数据库名称--id-type …...

    2024/4/20 17:04:06
  5. Spring Data Neo4J 使用

    maven引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency>uri配置 #neo4j spring.data.neo4j.uri = bolt://neo4j:7687 spring.data.neo4j…...

    2024/4/17 19:13:46
  6. 不就看一下Java后端开发书架吗?这有啥不行(Java后端开发书籍)

    本文 Github开源项目:github.com/hansonwang99/JavaCollection 中已收录,有详细自学编程学习路线、面试题和面经、编程资料及系列技术文章等,资源持续更新中…先唠会嗑 前面刚刚整理过了「Java后端开发学习路线」,很多小伙伴也说让推荐一些对应的书籍瞧瞧。 推荐是没问题,…...

    2024/4/14 23:09:11
  7. 客户端 nio bio 的比较

    换完工作有三四个月了,发现一直都在忙,也好久不来这里,写下点什么了。今天就来分析下java Nio 和 Bio 应用于客户端的情况。Nio 是 new IO 的缩写,这个新是相对于Bio 而言。对于IO,大体上有两种分类,同步,异步;阻塞,非阻塞之分。Bio 自然是阻塞io,但Nio 不一定就是非…...

    2024/5/4 0:52:49
  8. XP取消开机时需按CTRL+ALT+DEL的方法

    有时装了某个程序或做过某些安全优化,本来开机不需输入密码的,变成要按CTRL+ALT+DEL再确认,如此麻烦 若想取消此动作: 运行处打入 rundll32 netplwiz.dll,UsersRunDll 确定把上面的钩去掉 再继续把钩去掉 就OK了...

    2024/4/14 23:09:08
  9. C# 5.0 async await 死锁问题

    从网上抄了一个小例子,自己敲了一下,发现总是会卡在await的位置,在这里做也备注,但是看别人的例子是不会造成死锁的。先说下我的环境是win10 vs2017 .net framework 4.5.private void btn_start_Click(object sender, EventArgs e){//Task.Run(new Action(() => Task3()…...

    2024/4/14 23:09:07
  10. C语言中的移位操作(逻辑移位和算…

    算术移位和逻辑移位主要是针对右移而言算数移位是会用符号位作为填充,逻辑移位不填充直接补零 左移时总是移位和补零。右移时无符号数是移位和补零,此时称为逻辑右移;而有符号数大多数情况下是移位和补最左边的位(也就是补最高有效位即符号位),移几位就补几位,此时称为…...

    2024/4/14 23:09:06
  11. promise、async和await回调队列和事件循环 剖析

    本文受https://segmentfault.com/a/1190000015057278文章启发。不过感觉作者写得比较冗余,且有些东西还是没有讲明白。于是我尝试用更进阶的代码并配上更简洁的注释来讲明白这些事情。 1. 事件循环js在执行的过程中是单线程的,所以采用了事件循环机制。也就是说,从上往下执行…...

    2024/4/14 23:09:05
  12. win10 下安装 neo4j

    1.neo4j介绍neo4j是基于Java语言编写图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS。详细介绍可看Neo4j 教程2.安装Java jdkjdk1.8安装neo4j是用Java语言编写的图形数据库,运行时需要启动JVM进程,因此,需安装JAVA SE的JDK。J…...

    2024/4/14 23:09:04
  13. 推荐一款Java 7 并行 指南书 [电子书]

    Java 7 Concurrency Cookbook http://download.csdn.net/detail/czjuttsw/5061620...

    2024/4/20 8:18:08
  14. windowsXP 使用远程桌面连接需要小心administrator 空密码

    近日使用windows优化大师附带的一个ping工具对一段IP进行扫描,然后使用windows 远程桌面连接工具连接。发现存在windowsXP用户打开远程桌面连接之后没有更改administrator帐户的密码。这样一个远程用户可以完全控制其电脑,实在危险。...

    2024/4/14 21:43:53
  15. BIO/伪异步IO/NIO/AIO四种IO模型比较

    一直对几种IO模型搞得懵懵懂懂,所以想对几种IO模型做个比较,然后进行归纳总结其各自的优缺点!如有不足和错误之处,望指出!1.BIO模型(同步阻塞IO模型)BIO模型特点:一连接一线程,一请求一应答,缺乏弹性伸缩能力比如tomcat 采用的传统的BIO+ 线程池 模式:这个模式适合活…...

    2024/4/14 21:43:52
  16. C语言中移位符需要注意的地方

    1、无符号值的所有移位操作都是逻辑移位,即是在空位补0,但是对于有符号数,到底是采用逻辑移位还是算术移位是靠编译器决定的。左移对于算术移位和逻辑移位都是一样的。因此当你的项目中有移植性的要求时,请注意不要使用有符号数的右移操作,如果没有移植性的要求时,应在使…...

    2024/4/14 21:43:51
  17. python3.8异步入门

    文章目录概述启动run-启动单任务create_task-异步执行gather-并发任务sleep-休眠结束shield-防止任务被取消wait_for-超时wait-等待线程交互内省Task对象cancel()cancelled()done()result()exception()add_done_callback(callback, *, context=None)remove_done_callback(callb…...

    2024/4/14 21:43:50
  18. BIO、NIO、AIO面试题(总结最全面的面试题!!!)

    文章目录BIO、NIO、AIO、Netty什么是IO在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别什么是BIO什么是NIO什么是AIO什么NettyBIO和NIO、AIO的区别IO流的分类什么是内核空间五种IO模型1.阻塞BIO(blocking I/O)2.非阻塞NIO(noblocking I/O)3.异步AIO(asynchrono…...

    2024/4/18 7:31:51
  19. neo4j初学

    Neo4j 使用cypher语言进行操作Cypher语言是在学习Neo4j时用到数据库操作语言(DML),涵盖对图数据的增删改查neo4j数据库简单除暴理解的概念:Neo4j中不存在表的概念,只有两类:节点(Node)和关联(Relation),可以简单理解为图里面的点和边。 在数据查询中,节点一般用小括号…...

    2024/4/14 21:43:48
  20. java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。以下书籍电子版下载地址:http://u.ixueyi.co…...

    2024/4/19 1:27:29

最新文章

  1. 自测痉挛性斜颈的迹象:通过六个动作进行判断【北京仁爱堂】

    痉挛性斜颈是一种肌张力障碍性疾病&#xff0c;其主要特征是颈部肌肉群的病理性收缩&#xff0c;导致头颈部姿势异常。为了更好地了解自身的颈部健康状况&#xff0c;我们可以通过以下六个动作进行自测&#xff0c;以判断是否存在痉挛性斜颈的迹象。 一、头颈阵挛性旋转首先&am…...

    2024/5/4 1:31:59
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. javaWeb网上零食销售系统

    1 绪 论 目前&#xff0c;我国的网民数量已经达到7.31亿人&#xff0c;随着互联网购物和互联网支付的普及&#xff0c;使得人类的经济活动进入了一个崭新的时代。淘宝&#xff0c;京东等网络消费平台功能的日益完善&#xff0c;使得人们足不出户就可以得到自己想要的东西。如今…...

    2024/5/3 10:08:04
  4. Docker Desktop+WSL2安装到自定义路径

    现在大多数软件实在太“流氓”了&#xff0c;在安装过程中&#xff0c;根本不让你选择安装路径&#xff0c;默认安装到$HOME下&#xff08;windows C盘&#xff09;&#xff0c;随着软件的使用增多&#xff0c;可能磁盘空间不够&#xff0c;这个时候就想着&#xff0c;看看某些…...

    2024/5/2 2:42:35
  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/4/27 23:24:42
  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