![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
杳杳星河
这个作者很懒,什么都没留下…
展开
-
同步异步,阻塞非阻塞,多线程,线程池的理解
网上关于这些的说法太多,这里记录一下个人的理解。结合unix I/O 模型图和windows的一些API。 1.何为同步,异步? 同步,异步是针对I/O而言的,其实理解就是不同的API,用了同步API的调用,就是同步,用了异步的API调用,就是异步。 举例: windows: _ACRTIMP int __cdecl read( _In_ int _FileHandle, _Out_writes_byte原创 2020-12-15 20:35:26 · 528 阅读 · 0 评论 -
windows异步之APC验证
using namespace std; HANDLE hfile; OVERLAPPED ov = { 0 }; void __stdcall apc(DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped) { cout << "enter apc" << endl; cout << dwErrorCode << ", " << dwNu.原创 2020-12-04 21:36:52 · 155 阅读 · 0 评论 -
windows线程用户模式同步测试
1.利用Interlocked序列函数,原子同步 俩个线程,不停的对gl_num进行修改,gl_num = 5 认为是未加锁的状态,6是加锁状态 调用InterlockedExchange(&gl_num, 6)以后: 返回的值是5,表明是该线程拿到了“锁”,可以执行代码,同时执行完成后置为5. 返回的不是5,而是6,则说明这个线程未拿到锁,需要sleep。等拿到锁的释放后再次竞争。 #include <Windows.h> #include <iostream> #i原创 2020-12-04 15:57:09 · 87 阅读 · 0 评论