我有2個主題。 我的目標是,第一個終止他自己的執行,必須停止另一個線程。 這可能嗎?一個線程停止另一個在C中
我有這樣的代碼:
#include <stdio.h>
#include <pthread.h>
#include <sys/types.h>
void* start1(void* arg)
{
printf("I'm just born 1\n");
int i = 0;
for (i = 0;i < 100;i++)
{
printf("Thread 1\n");
}
printf("I'm dead 1\n");
pthread_exit(0);
}
void* start2(void* arg)
{
printf("I'm just born 2\n");
int i = 0;
for (i = 0;i < 1000;i++)
{
printf("Thread 2\n");
}
printf("I'm dead 2\n");
pthread_exit(0);
}
void* function()
{
int k = 0;
int i = 0;
for (i = 0;i < 50;i++)
{
k++;
printf("I'm an useless function\n");
}
}
int main()
{
pthread_t t, tt;
int status;
if (pthread_create(&t, NULL, start1, NULL) != 0)
{
printf("Error creating a new thread 1\n");
exit(1);
}
if (pthread_create(&tt, NULL, start2, NULL) != 0)
{
printf("Error creating a new thread 2\n");
exit(1);
}
function();
pthread_join(t, NULL);
pthread_join(tt, NULL);
return 0;
}
例如,第一線程必須停止第二個。 怎麼可能做到這一點?
在舊的撥號連接上,經常出現連接卡住的情況,唯一可能的解決方法是終止應用程序。如果你有可能關閉連接(即使是從其他線程),也不需要終止程序本身。只有當它變成一種習慣時,這纔是不好的。 – SChepurin 2012-02-29 13:01:16