gpt4 book ai didi

c - 为Windows实现C11线程

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:07 27 4
gpt4 key购买 nike

我有一个用pthreads(C11)创建线程的头文件。现在我想创建另一个可以为Windows操作系统(WIN32)选择的头。我目前正在努力开始,主要是因为这是一个保持函数签名的要求,我不知道如何处理这个问题。这是我的问题:
C11头段:

/* types */
typedef pthread_t thrd_t;
typedef pthread_mutex_t mtx_t;
typedef pthread_cond_t cnd_t;
typedef pthread_key_t tss_t;
typedef pthread_once_t once_flag;

typedef int (*thrd_start_t)(void*);
typedef void (*tss_dtor_t)(void*);

static inline int thrd_create(thrd_t *thr, thrd_start_t func, void *arg)
{
return pthread_create(thr, 0, (void*(*)(void*))func, arg) == 0 ? thrd_success : thrd_error;
}

WIN32(目前为止我所拥有的):
/* types */
typedef HANDLE thrd_t;

static inline int thrd_create(thrd_t *thr, thrd_start_t func, void *arg)
{
thrd_t = CreateThread(
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_ DWORD dwCreationFlags,
);
return pthread_create(thr, 0, (void*(*)(void*))func, arg) == 0 ? thrd_success : thrd_error;
}

我特意粘贴了CreateThread()的签名来解释我的问题:现在如何使用输入 (thrd_t *thr, thrd_start_t func, void *arg)CreateThread()?我的意思是,我既没有堆栈大小,也没有任何创建标志。
我想我哪里出了问题,但我不知道在哪里。如果我能理解这篇文章,我可以自己做标题的其余部分。我知道有解决办法,但我想理解这一点。

最佳答案

如果可能的话,你应该使用Standard Thread Library

关于c - 为Windows实现C11线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44715492/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com