6.2.1 接受连接的方法Winsock扩展函数AcceptEx是唯一能够使用重叠I/O接受客户连接的函数。下面主要深入探讨使用该函数接收连接的问题。前面已经讨论过,当客户连接进来时,服务器需要创建一个套接字来负责维护与一个客户端的会话。使用AcceptEx函数之前必须创建一些套接字,并且这些套接字必须是未绑定、未连接的,即使它们可能在调用TransmitF……继续阅读 » 弦苦 3年前 (2022-03-19) 3011浏览 0评论2392个赞
引言要想编写一个高性能的服务器应用程序,必须实现一个高效的线程模型。让太少或者太多的服务器线程来处理客户的请求,都可能导致性能问题。例如,如果一个服务器创建单个线程来处理所有的请求,那么客户端可能长期等待而得不到响应,因为服务器同一时刻只能忙于处理一个请求。当然单个线程也能并发处理多个请求,当I/O操作被启动时,它可以从一个请求切换到另一个请求,但是这种结构……继续阅读 » 弦苦 3年前 (2022-03-19) 2315浏览 0评论1134个赞
#include BOOL InitWindowsClass(HINSTANCE hInstance); // 注册窗口类BOOL InitWindows(HINSTANCE hInstance, int nCmdShow); // 创建窗口LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LP……继续阅读 » 弦苦 3年前 (2022-03-19) 2149浏览 0评论2516个赞
I/O管理器 I/O 管理器定义了有序的结构,或者说是模型,在这个模型里将I/O请求发送给设备驱动程序。I/O系统是包驱动的,大部分I/O请求用I/O请求包(IRP)代表,从一个I/O系统组件传送到另一个组件。(注意:快速I/O不是IRP。)这种设计允许一个应用程序线程可以同时管理多个I/O请求。一个IRP是一个数据结构,包含了完整地描述一个I/O请求的信息……继续阅读 » 弦苦 3年前 (2022-03-19) 1267浏览 0评论2513个赞
堆和栈的区别……继续阅读 » 弦苦 3年前 (2022-03-19) 2493浏览 0评论1791个赞
除非显式地声明,否则,你可以假设以下讨论的内容既适合用户模式的线程,也适用于内核模式的线程。在系统级别上,Windows线程是由一个线程块执行体(ETHREAD)来表示的,如图6.7所示。ETHREAD块和它所指向的结构都位于系统地址空间中,唯一的例外是线程环境快(TEB),它位于进程地址空间中。而且,Windows子系统进程(Csrss)为Windows进……继续阅读 » 弦苦 3年前 (2022-03-19) 1314浏览 0评论1849个赞
Win32多线程编程之基础概念篇……继续阅读 » 弦苦 3年前 (2022-03-19) 1379浏览 0评论2382个赞
概述Windows 实现了一个由优先级驱动,抢占式的调度系统,也就是最高优先级的可运行的(就绪状态下的)线程总是先运行。 有一种现象称之为“处理器亲合(processor affinity)”,即线程可能受处理器限制,只运行在那些允许它运行的处理器上。缺省的设置是线程可运行在任何可用的处理器上,用户可以通过使用一个Win32的调度函数修改处理器的“亲合性”。……继续阅读 » 弦苦 3年前 (2022-03-19) 1768浏览 0评论221个赞
千万不要错过这篇,不然你就亏大发了。八大排序,各显神通。前言 一、排序的概念 二、各算法特点 1.直接选择排序 2.堆排序 3.直接插入排序 4.希尔排序 5.冒泡排序 6.快速排序 7.归并排序 8.基数排序 总结前言排序是计算机程序设计中一个非常重要的操作,它将一个数据元素(或记录)的任意序列重新排列成一个按关键字有序的序列。在有序的序列……继续阅读 » 九江董熙 3年前 (2022-03-19) 3089浏览 0评论2235个赞
Python 创建二叉树前言二叉树节点定义递归构建二叉树前言本文的内容是数据结构中二叉树部分最基础的,之所以写一下主要是为了方便刷题的时候,能够在自己电脑上很快的使用这种小的demo进行复杂的练习。二叉树节点定义二叉树的节点定义如下:class TreeNode():#二叉树节点 def __init__(self,val,lchild=None,rc……继续阅读 » English_yang 4年前 (2021-04-01) 2137浏览 0评论669个赞
二叉查找树的增删查改……继续阅读 » BudingCode 4年前 (2021-04-01) 3121浏览 0评论686个赞