本文目录一览

1,oracle 一定要开启异步io吗

启动异步io会提高性能。

oracle 一定要开启异步io吗

2,c网络编程中究竟什么是异步IO 还有那个select函数是异步IO

答疑一:select函数不是异步。 答疑二:select函数仅仅是IO状态的查询 答疑三:select函数并不做IO请求,select仅仅查询指定FD(文件描述符)的IO状态。 答疑四:select函数的功能是,实现一组FD的IO状态查询 有不理解的,请追问:-)

c网络编程中究竟什么是异步IO 还有那个select函数是异步IO

3,简述同步IO和异步IO的区别

同步是阻塞模式,异步是非阻塞模式。同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。

简述同步IO和异步IO的区别

4,Java关于同步IO与异步IO

由操作系统完成的IO同步, 最常见的就是文件流了.当你对文件A创建一个写入的文件流后未关闭, 此时再对A创建另一个新的写入的文件流就会抛出异常. 这就属于操作系统完成的IO同步, 因为操作系统不允许一个文件同时出现两个或以上的文件流.
由操作系统完成的io同步, 最常见的就是文件流了.当你对文件a创建一个写入的文件流后未关闭, 此时再对a创建另一个新的写入的文件流就会抛出异常. 这就属于操作系统完成的io同步, 因为操作系统不允许一个文件同时出现两个或以上的文件流.itjob网上有相关例子

5,linux异步IO怎么理解

就是IO不阻塞即使没有数据可读,或者空间可写时。异步IO都返回,不管如何情况。简单点的意思就是进程不会阻塞在你读写调用异步IO系统调用的时候。所以你的执行流可以去做其它的事情,当你确实要确认数据读写成功的时候,你在用aio_return这个函数去判断读写成功了吗。如果你想耗费cpu那你就一值调用aio_return轮询结果。如果想睡眠等待读写完成,那么你调用aio_suspend这个函数,你就会睡眠,当读写完成时,内核会发信号给你,这时,就会执行信号处理函数,并唤醒此进程。要充分理解异步IO,最好把信号和异步通知一起搞懂。如果会写驱动的话,最好自己去实现IO的这些功能,比如阻塞IO,非阻塞IO,轮询,异步通知,异步IO等等,其中又涉及到并发和竞争的问题。
异步 就是你不知道什么时候要发生!IO的中断一般是异步的!

6,什么是同步IO和异步IO

异步文件IO也就是重叠IO。 在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。而异步文件IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。 如果IO请求需要大量时间执行的话,异步文件IO方式可以显著提高效率,因为在线程等待的这段时间内,CPU将会调度其他线程进行执行,如果没有其他线程需要执行的话,这段时间将会浪费掉(可能会调度操作系统的零页线程)。如果IO请求操作很快,用异步IO方式反而还低效,还不如用同步IO方式。 同步IO在同一时刻只允许一个IO操作,也就是说对于同一个文件句柄的IO操作是序列化的,即使使用两个线程也不能同时对同一个文件句柄同时发出读写操作。重叠IO允许一个或多个线程同时发出IO请求。 异步IO在请求完成时,通过将文件句柄设为有信号状态来通知应用程序,或者应用程序通过GetOverlappedResult察看IO请求是否完成,也可以通过一个事件对象来通知应用程序。 例如DeviceIoControl这个函数,他就可以通过参数指定是同步或异步,如果是同步的话,则该函数将会等待结果返回后,才执行下一条语句。如果是异步的话,DeviceIoControl调用后马上返回,如果参数正确,则回返回ERROR_IO_PENDING(忘了怎样写,不过肯定是有PENDING这个词),然后你可以通过GetOverlappedResult获取返回结果,是一个overlap结构,是在你调用DeviceIoControl的最后一个参数传进去的`` 简单的说``同步在编程里,一般是指某个操作执行完后,才可以执行后面的操作``拿到IO上来说``就是我要做完这个IO操作``才继续后面的操作``` 异步则是,我交带了某个操作给系统(可以是windows,也可以是你自己的库),我呆会过来拿,我现在要去忙别的``拿到IO上说``我交带了某个IO操作给系统。。。。。

文章TAG:异步io  oracle  一定要开启异步io吗  
下一篇