上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: PV操作: P操作:passeren,通过,理解为申请资源 V操作:vrijgeven,释放,理解为释放资源 P操作定义如下: 1.sem减1。 2.若sem>=0,则P操作返回,该线程可以”通过“并继续执行。 3.若sem<0,则该线程被阻塞,进入操作系统的阻塞队列。 V操作定义如下: 1.sem 阅读全文
posted @ 2020-04-18 21:33 坦坦荡荡 阅读(2723) 评论(0) 推荐(0) 编辑
摘要: C++使用内核对象Mutex来实现线程同步锁。当两个或者更多线程需要同时访问一个共享资源时,Mutex可以只向一个线程授予对共享资源的独占访问权,如果第一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,知道第一个线程释放该互斥体 相关API函数: 创建互斥量 CreateMutex(); 阅读全文
posted @ 2020-04-18 16:29 坦坦荡荡 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 可以允许N个线程在同一时间访问同一资源 相关API函数: 创建信号量: CreateSemaphore(); HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // 安全属性,NULL为默认 LONG lInit 阅读全文
posted @ 2020-04-18 15:19 坦坦荡荡 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 死锁是指多个线程因为竞争资源而造成的一种僵局(互相等待)若无外力作用,这些进程都将无法向前推进 死锁产生的必要条件: 1).互斥条件:一个资源每次只能被一个进程使用 2).请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放 3).不可剥夺条件:进程已获得的资源,在未使用完之前,不能强 阅读全文
posted @ 2020-04-18 15:06 坦坦荡荡 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 1.ADO库导入。在stdafx.h 下: //引入ADO库 #import "C://Program Files//Common Files//System//ado//msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","ad 阅读全文
posted @ 2020-04-05 18:55 坦坦荡荡 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-04-02 23:09 坦坦荡荡 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 关系型数据库, 数据库由若干张表(Table)组成,这里说的数据Table很像Excel里的表; 正如Excel里的表格,Table也是由 行(rows)和列(columns)组成 一个Table存储一个类别的数据,每一行是一条数据,每一列是这种数据的一个属性; Table就像一个二维的表格,列(c 阅读全文
posted @ 2020-04-02 20:17 坦坦荡荡 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 利用异步选择模型,应用程序可以在一个套接字上接收以Windows消息为基础的网络事件通知。 int WSAAsyncSelect ( SOCKET s, //套接字 HWND hWnd, //窗口句柄,收到通知消息的窗口 unsigned int wMsg, //指定在发生网络事件时接受的消息(通常 阅读全文
posted @ 2020-04-01 17:03 坦坦荡荡 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 阻塞套接字需要每个客户端都去开辟一个新的线程与其通信 主线程accept,每监听到一个新的连接,就为他创建一个线程,在子服务线程里recv,send数据。但是一旦客户端连接数增多,线程开销非常大,不合适。 select模型: Select可以管理多个套接字(通过轮询,死循环不断去遍历) 利用sele 阅读全文
posted @ 2020-04-01 15:11 坦坦荡荡 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 6种I/O模型 1.阻塞模型 2.选择模型 3.WSAAsyncSelect模型 4.WSAEventSelect模型 5.重叠模型 6.完成端口模型 阅读全文
posted @ 2020-04-01 15:07 坦坦荡荡 阅读(170) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页