在windows下,有两种方法插入工作项以避免创build太多的线程:
方法1:使用IOCP;
手段2:使用QueueUserApc。
然而,手段1比手段2复杂得多。
虚拟内存中NUMA如何表示?
windows Azure虚拟机在缩放时访问networking速度很慢
我怎么能故意拖慢windows?
预加载WPF窗口(可能在其他线程中)来提高性能
Apache上的httpS; 它会减慢Apache吗?
所以我的问题是:手段1相对于手段2的优点是什么?
有很多读者的时候使用pthread_rwlock的效率
Nginx服务静态大文件
如何使OS日程安排磁盘最佳访问?
java性能windows vs linux
什么是最快的方式来增加一个C文件在ext4文件系统的linux文件的大小没有在文件中创build洞?
当你调用QueueUserApc ,你必须定位一个特定的线程。
IOCP具有QueueUserApc缺少的内置线程分派机制,可以让您将线程池中最高效的线程作为目标。 线程调度机制可以自动防止同时运行太多的线程(这会导致额外的上下文切换和额外的争用),或者同时运行的线程太少(这会导致性能下降)。
windows实际上跟踪运行IOCP作业的线程数量。 它最初设置允许运行的线程数等于机器上虚拟内核的数量。 但是,如果某个线程阻塞了I / O或同步,IOCP端口上阻塞的另一个线程将自动释放,从而避免线程匮乏。
另外,IOCP可以很容易地连接到I / O,以便I / O事件触发在IOCP端口上阻塞的线程分派。 这是在windows上对大量目标进行I / O *** 作的最有效的方法。
总结以上是内存溢出为你收集整理的I / O完成端口与QueueUserApc?全部内容,希望文章能够帮你解决I / O完成端口与QueueUserApc?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)