在Windows多线程中使用IOCP时如何确保线程安全?

时间:2020-07-07 03:53:02

标签: iocp

如果我CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,NULL,4),则在调用PostQueuedCompletionStatus()时,运行GetQueuedCompletionStatus()的4个线程可能会从GetQueuedCompletionStatus()返回。因此,如果我想通过PostQueuedCompletionStatus()多次发送一些数据,那么4个theads将有机会发送数据。那么问题是,同一套接字将用于多线程。线程安全吗?作为同一个套接字,我可以始终指定同一个线程吗?

1 个答案:

答案 0 :(得分:0)

在我看来,而不是从属套接字和线程。 能够在单个套接字上仅运行一次WSARecv或WSASend似乎很重要。 您可以使用_interlocked函数使用flag变量来控制recv和发送请求。

相关问题