对啊。我现在用 CreateFiber() 实现协程,但是这个 CreateFiber 有限制,一个线程里面创建一千多个协程就不行了,不知道巨硬是怎么实现的怎么这么烂。如果能够自行申请栈形态的内存,那我创建协程就没有限制了。
协程这东西,创建的时候只要申请个栈空间以及一个保存状态的小段空间(小于 128 字节)就行了,开销非常小。
我在 linux 里面用 MAP_STACK 每个协程申请个 8M,实际使用只要 8k,开一百万个协程也才占 8G 的内存。
【 在 keygen 的大作中提到: 】
:
https://learn.microsoft.com/en-us/windows/win32/procthread/thread-stack-size: To change the initially committed stack space, use the dwStackSize parameter of the CreateThread, CreateRemoteThread, or CreateFiber function. This value is rounded up to the nearest page. Generally, the reserve size is the default reserve size specified
: in the executable header. However, if the initially committed size specified by dwStackSize is larger than or equal to the default reserve size, the reserve size is this new commit size rounded up to the nearest multiple of 1 MB.
: ...................
--
FROM 183.253.143.*