我希望两个线程最初都在无限循环中运行,但是有一段时间后我想杀掉第一个线程而不等待它完成,第二个线程应该正常运行.我该如何实现它?当我运行以下代码时,它会给出调试错误!
void f1(int i)
{
while (1)
{
printf("Executng Thread %d : %d\n", i, j);
Sleep(10);
}
}
int main()
{
std::thread t1(f1, 1);
std::thread t2(f1, 2);
Sleep(100);
t1.~thread();
while (1)
{
Sleep(10);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我创建了4个线程,但是当我执行这个程序时,我将其作为输出:
Thread #: 1
Thread #: 2
Thread #: 3
Thread #: 3
Thread #: 4
Thread #: 4
Thread #: 4
Thread #: 5
Thread #: 5
Thread #: 5
.
.
.
Thread #: 5
Thread #: 5
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
源代码:
#include<windows.h>
HANDLE ThreadHandle[4];
DWORD dwThreadId[4];
DWORD WINAPI ThreadFunction(LPVOID param)
{
while (1)
{
printf("Thread #: %d\n", *((int*)param));
}
Sleep(10);
return 0;
}
int main()
{
static int i = 0;
for (i = 1; i <= …Run Code Online (Sandbox Code Playgroud)