Win32重叠I/O(Overlapped I/O)机制允许发起一个操作,然后在操作完成之后接受到信息。对于那种需要很长时间才能完成的操作来说,重叠IO机制尤其有用,因为发起重叠操作的线程 在重叠请求发出后就可以自由的做别的事情了。在WinNT和Win2000上,提供的真正的可扩展的I/O模型就是使用完成端口(Completion Port)的重叠I/O.完成端口---是一种WINDOWS内核对象。完成端口用于异步方式的重叠I/0情况下,当然重叠I/O不一定非使用完成端口不 可,还有设备内核对象、事件对象、告警I/0等。但是完成端口内部提供了线程池的管理,可以避免反复创建线程的开销,同时可以根据CPU的个数灵活的决定 线程个数,而且可以让减少线程调度的次数从而提高性能其实类似于WSAAsyncSelect和select函数的机制更容易兼容Unix,但是难以实现 我们想要的“扩展性”。而且windows的完成端口机制在操作系统内部已经作了优化,提供了更高的效率。所以,我们选择完成端口开始我们的服务器程序的 开发。
你说的“Windows的控制台”是不是cmd打开的界面呢?如果是,我这里有一个办法,可能比较诡异,但是可以达到目的。首先,在D:/LYTG/test/1/目录下建一个Demo1.java 如下图:这个是要动态运行的指定java文件,内容如下:
public class Demo1 {
/**
* @author LYTG
* @param args
*/
public static void main(String[] args) {
System.out.println("aaaaaaaaaaaaaaaaa")
}
}
然后在别的地方随便建一个Test.java,我是在eclipse里随便建的一个
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)