精华内容
下载资源
问答
  • 我们听了这么久有关「AI...AI可以实现自动驾驶、可以处理海量数据、可以在最复杂的游戏中击败最厉害的职业选手,却连这么个简单的事情都做了? 数据科学家:缺乏数据和业务认知导致AI无法做到「真正的」智能 在伦

    我们听了这么久有关「AI取代设计师」、「AI取代写作者」、「AI取代画家」、「AI取代司机」……的论调。然而时至今日,我们发现实际上,目前还没有一个职业「真正」被取代。

    AI并没有被广泛的应用于企业中,很多我们觉得计算机能够轻松搞定的工作,仍然需要人工去完成。例如翻阅一栋办公楼的PDF文档,并记下其中所包含的可出租单位的大小。AI可以实现自动驾驶、可以处理海量数据、可以在最复杂的游戏中击败最厉害的职业选手,却连这么一个简单的事情都做不了?

    数据科学家:缺乏数据和业务认知导致AI无法做到「真正的」智能
    住在伦敦的数学家、数据科学家Matthew Eric Bassett最近一直在思考一个问题:人工智能为何对企业无用?

    他认为,部分原因可能在于我们与计算机的交互方式。计算机是基于一个需要明确、精确的指令来操作数据的架构。即使我们的智能手机上有语音控制的虚拟助理,我们仍然通过给它们发出明确、精确(尽管是更高级别的)指令来与它们互动。人工智能算法可能看做是隐含地推断出其中的许多指令。也许在有了更高级别的编程语言之后,使用Excel来完成现代商业任务就像用机器代码编写软件一样。但他认为目前面临着两个更直接的问题:一是缺乏数据,二是缺乏认知。今天的人工智能是由数据驱动的。而今天的大部分数据都来自于互联网:文字、图片、视频,以及我们与它们的交互。

    如果一群软件工程师想要创建一个模型,比如说可以识别图片中的汽车的品牌和型号,他们可以从其他研究人员检测图片中的物体的预训练模型开始,然后通过训练一个仅包含汽车的较小的例子集来「顶上」,这就是所谓的迁移学习。但目前还没有一个现有的「文档理解」模型,让我们可以通过转移学习来适应我们的具体业务流程。构成商业世界的excel电子表格、营销手册、法律合同等文档,都隐藏在各个公司内部的邮件收件箱和其他孤岛中。开发者无法接触到相关的文档,也无法为其贴上合适的训练标签。更重要的是,人工研究团队缺乏对具体的业务流程和任务的认知。研究人员需要对所涉及的业务流程形成一种直觉。我们还没有在太多领域看到这种情况发生。大的成功案例发生在那些问题很容易被理解并且有很多公开的例子(机器翻译),或者是有巨大投资回报率的承诺(自驾车汽车),或者是一家大公司任意决定向这个问题抛出足够多的资源,直到他们能够破解这个问题(AlphaGo)。

    这意味着,当研究人员能够专注于一个特定的问题,并且能够积累足够的数据来训练一个可行的模型时,我们就可以期待人工智能在自动化业务流程方面取得成功。成功的另一个标准是,人工智能的目标应该是增强参与流程的人的能力,而不是取代他们。如果他们成功了,那么在这些行业工作的人就可以期望他们把更多的时间花在做有趣的、有创意的工作上,而不是把更多的时间花在做枯燥的、耗时的任务上。

    目前企业所谓的「AI」只不过是一堆数学模型
    在HackerNews上,一位在印度最大的科技型物流公司工作过的网友说,自己的公司确实依靠优化以及解决问题,但都没有涉及到AI,都是数学模型而不是黑匣子。另一位曾在宝马和大众汽车公司工作过网友也提到同样的问题。

    他与企业合作伙伴一起领导了几个项目,这些项目更多的是通过数学模型或者数据集进行优化。在她看来,这需要大量的数据分析和一些试错,最终我们得到了一个有利的结果,而不是AI。他在2017年负责宝马最后一个项目,他提交的供应链分析课程的提案得到了99.7%的高分。没有任何AI能够达到如此高的分数,这完全依赖于他对整个业务的熟悉程度,以及基于人类的直觉。他坦言AI总归有一天能够发挥作用,但目前并非如此,供应链分析和物流领域这些年似乎也没有什么变化。企业没有加入更多的「AI」成分,AI也没有让更多的人失业,让人失业的是当前的疫情。

    亲爱的网友,您怎么看?

    展开全文
  • 其实并不是转到前,而是他相信,因为认知,你让个在工地搬砖的去高楼大厦做个白领,他是敢想象的,因为恐惧,因为...后来,别人都去写字为什么我不行?但是我又做什么呢?最先想到的做销售,门槛低,于

    其实并不是转不到前,而是他不相信,因为认知,你让一个在工地搬砖的去高楼大厦做个白领,他是不敢想象的,因为恐惧,因为他认为很高大上,其实并不是。
    我2013年独自一人来到深圳观澜,因为没上过大学只能找个工厂做个流水线工人,错,并不是因为没上过大学,而是因为我的认知不够,当时自我感觉只要工厂能要我就不错了,能有个地方住,有口饭吃,每个月有个2.3千工资就满足了,可是后来一样不甘心,工厂待着每天12个小时,日复一日,无任何意义
    后来,别人都能去写字楼,为什么我不行?但是我又能做什么呢?最先想到的做销售,门槛低,于是一家一家的面试,去的最多的就是保险,贷款等公司,而且我的要求也很低,只要有公司要我就去,无论工资如何,只要能给我一个机会就行,于是去了一家保险公司做了一年,也还算顺利,接着跳槽做了四年的销售,手头宽裕一些了,还是不甘心。
    后来就开始创业,这一创就是三年,每天疯狂的学习,疯狂的加班,疯狂的找客户,做自媒体这几年是我变化最大的几年,一次次的自我突破,一次次的改变。自己都有点不认识自己了,完全就是两个人。
    但是从来不后悔,刚来深圳只想吃口饱饭,到现在有家庭,有房有车,虽然还没有达到理想的目标,只要认知在,能力在不断提高,我相信这也是迟早的事。
    所以加油吧,30岁达成理想的目标,算是给自己的生日礼物🎁
    在这个过程中有苦也有乐,但是从来没有被困难低头过,因为我还年轻,因为深圳不缺机会,缺的是认知。
    最近影视剪辑项目进展也很不错,很多伙伴通过此项目改变了他们的认知,改变了对zhuanqian的认知,也让我很欣慰,加油吧,因为不能辜负那些期待的眼神,也不能辜负那些希望我倒下的人,加油,自勉[祈祷][祈祷][祈祷]

    展开全文
  • epoll为什么这么快

    2011-05-11 11:52:00
    要等待个朋友来访,而这个朋友只知道你在A号,但是知道你具体在哪里,于是你们约好了在A号门口见面. <br />如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号门口等待朋友的到来,在这...

    epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO.

    以一个生活中的例子来解释.

    假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.

    如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号楼门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的.

    现在时代变化了,开始使用多路复用IO模型来处理这个问题.你告诉你的朋友来了A号楼找楼管大妈,让她告诉你该怎么走.这里的楼管大妈扮演的就是多路复用IO的角色.

    进一步解释select和epoll模型的差异.

    select版大妈做的是如下的事情:比如同学甲的朋友来了,select版大妈比较笨,她带着朋友挨个房间进行查询谁是同学甲,你等的朋友来了,于是在实际的代码中,select版大妈做的是以下的事情:


    int n = select(&readset,NULL,NULL,100);

    for (int i = 0; n > 0++i)
    {
       
    if (FD_ISSET(fdarray[i], &readset))
       {
          do_something(fdarray[i]);
          --n;
       }
    }


    epoll版大妈就比较先进了,她记下了同学甲的信息,比如说他的房间号,那么等同学甲的朋友到来时,只需要告诉该朋友同学甲在哪个房间即可,不用自己亲自带着人满大楼的找人了.于是epoll版大妈做的事情可以用如下的代码表示:

    n=epoll_wait(epfd,events,20,500);
       
    for(i=0;i<n;++i)
    {
        do_something(events[n]);
    }


    在epoll中,关键的数据结构epoll_event定义如下:

    typedef union epoll_data {
                    
    void *ptr;
                    
    int fd;
                    __uint32_t u32;
                    __uint64_t u64;
            } epoll_data_t;

            
    struct epoll_event {
                    __uint32_t events;      
    /* Epoll events */
                    epoll_data_t data;      
    /* User data variable */
            }; 

    可以看到,epoll_data是一个union结构体,它就是epoll版大妈用于保存同学信息的结构体,它可以保存很多类型的信息:fd,指针,等等.有了这个结构体,epoll大妈可以不用吹灰之力就可以定位到同学甲.

    别小看了这些效率的提高,在一个大规模并发的服务器中,轮询IO是最耗时间的操作之一.再回到那个例子中,如果每到来一个朋友楼管大妈都要全楼的查询同学,那么处理的效率必然就低下了,过不久楼底就有不少的人了.

    对比最早给出的阻塞IO的处理模型, 可以看到采用了多路复用IO之后, 程序可以自由的进行自己除了IO操作之外的工作, 只有到IO状态发生变化的时候由多路复用IO进行通知, 然后再采取相应的操作, 而不用一直阻塞等待IO状态发生变化了.

    从上面的分析也可以看出,epoll比select的提高实际上是一个用空间换时间思想的具体应用.

    展开全文
  • epoll为什么这么快?

    2018-12-03 15:02:49
    如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的.   进一步解释select和epoll模型的差异. sele...

            以一个生活中的例子来解释. 假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面. 如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号楼门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的. 
            进一步解释select和epoll模型的差异. select版大妈做的是如下的事情:比如同学甲的朋友来了,select版大妈比较笨,她带着朋友挨个房间进行查询谁是同学甲,你等的朋友来了,于是在实际的代码中,select版大妈做的是以下的事情: 
            

    int n = select(&readset,NULL,NULL,100); 
    for (int i = 0; n > 0; ++i) { 
        if (FD_ISSET(fdarray[i], &readset)) { 
          do_something(fdarray[i]); 
          --n; 
        } 
    }


            epoll版大妈就比较先进了,她记下了同学甲的信息,比如说他的房间号,那么等同学甲的朋友到来时,只需要告诉该朋友同学甲在哪个房间即可,不用自己亲自带着人满大楼的找人了.于是epoll版大妈做的事情可以用如下的代码表示: 
            

    n = epoll_wait(epfd,events,20,500); 
    for(i=0;i<n;++i) { 
        do_something(events[n]); 
    } 


    在epoll中,关键的数据结构epoll_event定义如下: 
            typedef union epoll_data { 
                void *ptr; 
                int fd; 
                __uint32_t u32; 
                __uint64_t u64; 
            } epoll_data_t; 
            struct epoll_event { 
                __uint32_t events; /* Epoll events */ 
                epoll_data_t data; /* User data variable */ 
            }; 
            可以看到,epoll_data是一个union结构体,它就是epoll版大妈用于保存同学信息的结构体,它可以保存很多类型的信息:fd,指针,等等.有了这个结构体,epoll大妈可以不用吹灰之力就可以定位到同学甲. 别小看了这些效率的提高,在一个大规模并发的服务器中,轮询IO是最耗时间的操作之一.再回到那个例子中,如果每到来一个朋友楼管大妈都要全楼的查询同学,那么处理的效率必然就低下了,过不久楼底就有不少的人了.  对比最早给出的阻塞IO的处理模型, 可以看到采用了多路复用IO之后, 程序可以自由的进行自己除了IO操作之外的工作, 只有到IO状态发生变化的时候由多路复用IO进行通知, 然后再采取相应的操作, 而不用一直阻塞等待IO状态发生变化了. 从上面的分析也可以看出,epoll比select的提高实际上是一个用空间换时间思想的具体应用. 
            
            二、深入理解epoll的实现原理:开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢? 
            先简单回顾下如何使用C库封装的3个epoll系统调用吧。
            int epoll_create(int size); 
            int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); 
            int epoll_wait(int epfd, struct epoll_event *events,int maxevents, int timeout); 
            使用起来很清晰,
            首先要调用epoll_create建立一个epoll对象。参数size是内核保证能够正确处理的最大句柄数,多于这个最大数时内核可不保证效果。

           epoll_ctl可以操作上面建立的epoll, 例如,将刚建立的socket加入到epoll中让其监控,或者把 epoll正在监控的某个socket句柄移出epoll,不再监控它等等。

           epoll_wait在调用时,在给定的timeout时间内,当在监控的所有句柄中有事件发生时,就返回用户态的进程。

           从上面的调用方式就可以看到epoll比select/poll的优越之处:因为后者每次调用时都要传递你所要监控的所有socket给select/poll系统调用,这意味着需要将用户态的socket列表copy到内核态,如果以万计的句柄会导致每次都要copy几十几百KB的内存到内核态,非常低效。而我们调用epoll_wait时就相当于以往调用select/poll,但是这时却不用传递socket句柄给内核,因为内核已经在epoll_ctl中拿到了要监控的句柄列表。 所以,实际上在你调用epoll_create后,内核就已经在内核态开始准备帮你存储要监控的句柄了,每次调用epoll_ctl只是在往内核的数据结构里塞入新的socket句柄。 在内核里,一切皆文件。所以,epoll向内核注册了一个文件系统,用于存储上述的被监控socket。当你调用epoll_create时,就会在这个虚拟的epoll文件系统里创建一个file结点。当然这个file不是普通文件,它只服务于epoll。epoll在被内核初始化时(操作系统启动),同时会开辟出epoll自己的内核高速cache区,用于安置每一个我们想监控的socket,这些socket会以红黑树的形式保存在内核cache里,以支持快速的查找、插入、删除。这个内核高速cache区,就是建立连续的物理内存页,然后在之上建立slab层,简单的说,就是物理上分配好你想要的size的内存对象,每次使用时都是使用空闲的已分配好的对象。
            

      static int __init eventpoll_init(void) { 
        ... ... 
        /* Allocates slab cache used to allocate "struct epitem" items */ 
        epi_cache = kmem_cache_create("eventpoll_epi", sizeof(struct epitem), 0, SLAB_HWCACHE_ALIGN|EPI_SLAB_DEBUG|SLAB_PANIC, NULL, NULL); 
        /* Allocates slab cache used to allocate "struct eppoll_entry" */ 
        pwq_cache = kmem_cache_create("eventpoll_pwq", sizeof(struct eppoll_entry), 0, EPI_SLAB_DEBUG|SLAB_PANIC, NULL, NULL); 
        ... ... 
      }


            epoll的高效就在于,当我们调用epoll_ctl往里塞入百万个句柄时,epoll_wait仍然可以飞快的返回,并有效的将发生事件的句柄给我们用户。这是由于我们在调用epoll_create时,内核除了帮我们在epoll文件系统里建了个file结点,在内核cache里建了个红黑树用于存储以后epoll_ctl传来的socket外,还会再建立一个list链表,用于存储准备就绪的事件,当epoll_wait调用时,仅仅观察这个list链表里有没有数据即可。有数据就返回,没有数据就sleep,等到timeout时间到后即使链表没数据也返回。所以,epoll_wait非常高效。 那么,这个准备就绪list链表是怎么维护的呢?当我们执行epoll_ctl时,除了把socket放到epoll文件系统里file对象对应的红黑树上之外,还会给内核中断处理程序注册一个回调函数,告诉内核,如果这个句柄的中断到了,就把它放到准备就绪list链表里。所以,当一个socket上有数据到了,内核在把网卡上的数据copy到内核中后就来把socket插入到准备就绪链表里了。 如此,一颗红黑树,一张准备就绪句柄链表,少量的内核cache,就帮我们解决了大并发下的socket处理问题。执行epoll_create时,创建了红黑树和就绪链表,执行epoll_ctl时,如果增加socket句柄,则检查在红黑树中是否存在,存在立即返回,不存在则添加到树干上,然后向内核注册回调函数,用于当中断事件来临时向准备就绪链表中插入数据。执行epoll_wait时立刻返回准备就绪链表里的数据即可。

            最后看看epoll独有的两种模式LT和ET。无论是LT和ET模式,都适用于以上所说的流程。区别是,LT模式下,只要一个句柄上的事件一次没有处理完,会在以后调用epoll_wait时次次返回这个句柄,而ET模式仅在第一次返回。 这件事怎么做到的呢?当一个socket句柄上有事件时,内核会把该句柄插入上面所说的准备就绪list链表,这时我们调用epoll_wait,会把准备就绪的socket拷贝到用户态内存,然后清空准备就绪list链表,最后,epoll_wait干了件事,就是检查这些socket,如果不是ET模式(就是LT模式的句柄了),并且这些socket上确实有未处理的事件时,又把该句柄放回到刚刚清空的准备就绪链表了。所以,非ET的句柄,只要它上面还有事件,epoll_wait每次都会返回。而ET模式的句柄,除非有新中断到,即使socket上的事件没有处理完,也是不会次次从epoll_wait返回的。
            

     

    三、扩展阅读(epoll与之前其他相关技术的比较)

             Linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。 
            int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);

            int poll(struct pollfd *fds, nfds_t nfds, int timeout);

            int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);

            select、poll、epoll_wait参数及实现对比 
            1. select的第一个参数nfds为fdset集合中最大描述符值加1,fdset是一个位数组,其大小限制为__FD_SETSIZE(1024),位数组的每一位代表其对应的描述符是否需要被检查。 select的第二三四个参数表示需要关注读、写、错误事件的文件描述符位数组,这些参数既是输入参数也是输出参数,可能会被内核修改用于标示哪些描述符上发生了关注的事件。所以每次调用select前都需要重新初始化fdset。 timeout参数为超时时间,该结构会被内核修改,其值为超时剩余的时间。 select对应于内核中的sys_select调用,sys_select首先将第二三四个参数指向的fd_set拷贝到内核,然后对每个被SET的描述符调用进行poll,并记录在临时结果中(fdset),如果有事件发生,select会将临时结果写到用户空间并返回;当轮询一遍后没有任何事件发生时,如果指定了超时时间,则select会睡眠到超时,睡眠结束后再进行一次轮询,并将临时结果写到用户空间,然后返回。 select返回后,需要逐一检查关注的描述符是否被SET(事件是否发生)。 
            2. poll与select不同,通过一个pollfd数组向内核传递需要关注的事件,故没有描述符个数的限制,pollfd中的events字段和revents分别用于标示关注的事件和发生的事件,故pollfd数组只需要被初始化一次。 poll的实现机制与select类似,其对应内核中的sys_poll,只不过poll向内核传递pollfd数组,然后对pollfd中的每个描述符进行poll,相比处理fdset来说,poll效率更高。 poll返回后,需要对pollfd中的每个元素检查其revents值,来得指事件是否发生。 
            3. epoll通过epoll_create创建一个用于epoll轮询的描述符,通过epoll_ctl添加/修改/删除事件,通过epoll_wait检查事件,epoll_wait的第二个参数用于存放结果。 epoll与select、poll不同,首先,其不用每次调用都向内核拷贝事件描述信息,在第一次调用后,事件信息就会与对应的epoll描述符关联起来。另外epoll不是通过轮询,而是通过在等待的描述符上注册回调函数,当事件发生时,回调函数负责把发生的事件存储在就绪事件链表中,最后写到用户空间。

    展开全文
  • epoll为什么这么快,epoll的实现原理

    千次阅读 2013-11-18 16:00:27
    如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的. 进一步解释select和epoll模型的差异. select版大妈做的是...
  • 俗话说,像阿里巴巴店铺这种B2B平台,相当于在别人的里租房子,租房子。而企业做网站,就相当于自己盖房子。你可以随心所欲地装饰自己的房子。而租别人的房子,你不给房租,你的房子就没了。...不能按照自
  • 突然发现自己好像什么知道了!( 神仙?妖怪?谢谢~~!)感觉好怪怪的,还是认真阅读吧,可以给自己种脚踏实地的感觉!... - -|||今天早上又被町叮哐啷的声音惊醒,疑有人砸铁劈柴,出去看,不由得
  • 10-20 09:28:34.426: VERBOSE/asdasdasd(17664): 1,6,[唱K]童话城KTV,校外小食街对面二童话城KTV(即千零夜隔壁),677585 10-20 09:28:34.426: VERBOSE/asdasdasd(17664): 1,7,[唱K]清怡吧,桌球城前,...
  • EPOLL详解

    2018-01-17 21:59:18
    epoll为什么这么快,epoll的实现原理:假设你在大学中读书,要等待个朋友来访,而这个朋友只知道你在A号,但是知道你具体在哪里,于是你们约好了在A号门口见面.如果你使用的阻塞IO模型来处理这个问题,那么你就...
  • 学习算法就像去造,怎么让建筑设计的好看而且坚实,高端的大楼,恩 那么就少不了算法,我们需要在有限的地基上,造出好看闪耀同时又抗的极端天气的大楼,一直坚信用简单的去解开复杂的,写代码也是如此,我这...
  • 2020年上海幼升小采取摇号政策,公民同招情况下,民办不能自己筛选了,只能靠运气摇号,带来了好的公立学校热大的热度,对学区房有利好的影响。很多热门学区需要“五年户”,在购房时候一定要提前关注。 民办摇号...
  • 生活

    2011-11-29 19:53:47
    知道,这种艰辛还要持续多久,好像现在还,经常感觉到连呼吸都困难,总是想着有天如果我撑下去,会不会从信科18跳下去……  为什么呢,为什么呢?  如果,如果我存在了,是不是一切都终结了?...
  • 疯狂的程序员

    热门讨论 2012-07-18 18:05:32
    绝影说:“痛的不能走路“。医生说:“那就租副拐杖去吧,押金十元,每天租金两毛。” 从校医院出来,绝影就拄了双拐杖。他说:“妈不行我还是痛,带我去城里的医院吧。”去了城里的医院,绝影就开始住院了,因为...
  • 绩效无故乱扣,人事是个大水逼 招聘消息 90%加 什么六险金 其实只有社保 迟到1分钟扣20 迟到3次扣工资的3%,承诺的事百分之90假,然后 离职申请上 原因人事逼着离职人员写 赶进度 不适应 不能写实情,人事给谈的...
  • 1. 什么是刷? 2. 调剂之前应该做哪些准备工作? 3. 如何联系调剂拟接收导师? 4. 调剂经验分享 致谢 问题索引 简介:由于这篇汇总文章涉及到的内容较多,通读遍确实需要花费不少的时间。而我深知...
  • ​ 提到宿舍,现在无论是学校,还是工厂,都是在熟悉不过的了,学生宿舍,职工教员工,职工宿舍等等,每栋楼房都有很多的房间,每个宿舍分配了多少个床位,什么人,那些床位是空的,那些房间是空的,这些...
  • 地势是否坚硬很重要,这就是为什么矮人需要水晶。  最后,姐姐说服我们两个镇定下来,各自干该干的,之后我们去找了个还欠老大钱的人一起加入。在路上我们还遇到了个看起来很面熟的女人,调查才知道她就是...
  • WPS 2000 强调以用户中心这特点,用 WPS 2000 编辑打印中文文档,从文字校对、纸张类型到打印方式都满足国内用户对处理中文文档的需求。多种工具条和丰富的图文符号是各类技术人员制作专业资料的强劲工具。...
  • 不能相互访问却要连接共享 1.1.2 设备互连 13. 10Base-T共享网络连接 14. 共享网络传输速率低 15. 不对称交换设备的连接 16. 对称交换网络的连接 17. 利用三层交换机提高传输效率 18. ...
  • 不能相互访问却要连接共享 1.1.2 设备互连 13. 10Base-T共享网络连接 14. 共享网络传输速率低 15. 不对称交换设备的连接 16. 对称交换网络的连接 17. 利用三层交换机提高传输效率 18. ...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

一楼为什么不能住