zoukankan      html  css  js  c++  java
  • IO管理

    ECMA的标准中有2种语言:C#、JS

    1、IO?

    IO就是Input/Output

    2、什么是异步

    异步,其实就是不阻塞当前线程,可以让代码继续执行下去的操作就是异步。

     

    X:对象公用的非阻塞式

     

    阻塞与非阻塞、异步与非异步、并行与并发

    (1)什么是阻塞与非阻塞?

    所谓的阻塞与非阻塞是来描述行为的,也就是没有行为特征,是无法判定一个函数是阻塞的还是非阻塞的。

    阻塞的含义:在该动作/函数没有返回之前,不能进入下一行代码,则为阻塞。但是,入宫你的阻塞是程序级别的或进程级别的,那么判断阻塞的标准将会被您的这个背景知识所扩大。扩大为:某一个线程,在某函数没有返回之前,不能进行下一步,则该函数为阻塞,但是该阻塞,其实应当是线程级别阻塞,而非完全阻塞函数。

     

    (2)什么又是异步与非异步?

    讲究一个函数是否是异步,要看它的行为,而不是它的代码。

    并行必须是异步的,但异步并不以第那个是并行。

     

    (3)什么又是并行与并发呢?

     

    3、异步IO?

    FIFO:linux下的一个概念。

    epoll、ShareMemory、NamePipeline

    windows下有一个最尴尬的情况,TCP的口子,有闭合期(close_wait).zuo jmeter会遇到。

    异步IO其实还是来描述IO的。首先要确定当前的操作是不是IO。

    万物相对论,没有参照物咱们就没有形容词。异步时形容IO的。

    那么,就得设计到同步。

    假定:你有一个操作,此时需要读取某个东西,这时候跟CPU已经没有关系了,如果你是依赖于让CPU也牵扯进来,让它等着,完事以后再说,这时候你的程序就处于无响应状态(CPU不可能等你的程序的,它只会等着你唤醒,所以也就是同步IO阻死了至少一个线程)。

    这时候,如果你让这个操作相对于当前的线程可以不那么紧急,告诉CPU我知识这个函数到了这里可以跳出了,别的内容你该干啥还是得干。

    这时候就异步了。

    那么IO呢,就是异步了一下IO操作而已。

     

    4、优点是什么?

    在.NET中,说的异步IO就是代指标准的异步IO且能够使用线程池中的IO线程。

    第一个优点:不占用资源;

    然而,学习过计算机原理的都知道,CPU跟这些IO设备其实在某些时刻时完全可以独立开的。例如内存的DMA(Direct Memory Access)等技术。所以先问一个问题。处理IO的时候会一直占用CPU吗?

    5、缺点是什么?

    只要异步,就会存在同步的问题。

    如果你考虑同步就会存在脏的问题。

    如果你不在乎脏,就会有错的问题。

    如果上面两个如果你不担心,那么无所谓,如果你担心,你会引申出来一堆的东西,引申什么呢?

     

    6、自己写代码时,这知识有什么用?

     

    7、影响和结论

    夯实基础学完后,就应该能自己写出来符合逻辑的、合乎正常水平的代码了。接下来就需要组装这些内容了,如果不组装,可能一辈子也不会有啥用。

  • 相关阅读:
    Flask_自定义参数类型(自定义转换器)
    数据结构与算法(排序)
    数据结构与算法(查找)
    Vue_fetch和axios数据请求
    Vue_修饰符
    Vue_列表过滤应用
    Vue_生命周期函数
    Vue_watch()方法,检测数据的改变
    Django_redis_缓存
    防火墙相关
  • 原文地址:https://www.cnblogs.com/lanyuejiagou/p/12598753.html
Copyright © 2011-2022 走看看