当前位置: 技术问答>linux和unix
怎么样由键盘输入来结束或者暂停循环线程?急
来源: 互联网 发布时间:2015-12-03
本文导语: 创建了2个子线程,我想在程序运行中,按x键所有线程就结束或者暂停,应该怎么改?谢谢! 原代码如下: #include #include #include #include #include #include #include #include pthread_t tid1, tid2; void * thread1(void *...
创建了2个子线程,我想在程序运行中,按x键所有线程就结束或者暂停,应该怎么改?谢谢!
原代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
pthread_t tid1, tid2;
void * thread1(void * arg)
{
while(1)
{
printf("thread1n");
sleep(1);
}
}
void * thread2(void * arg)
{
while(1)
{
printf("thread2n");
sleep(1);
}
}
int main()
{
if(pthread_create(&tid1, NULL, thread1, NULL) != 0)
{
printf("create thread1 error %sn", strerror(errno));
exit(0);
}
if(pthread_create(&tid2, NULL, thread2, NULL) != 0)
{
printf("create thread2 error %sn", strerror(errno));
exit(0);
}
while(1)
{
printf("main threadn");
sleep(1);
}
}
原代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
pthread_t tid1, tid2;
void * thread1(void * arg)
{
while(1)
{
printf("thread1n");
sleep(1);
}
}
void * thread2(void * arg)
{
while(1)
{
printf("thread2n");
sleep(1);
}
}
int main()
{
if(pthread_create(&tid1, NULL, thread1, NULL) != 0)
{
printf("create thread1 error %sn", strerror(errno));
exit(0);
}
if(pthread_create(&tid2, NULL, thread2, NULL) != 0)
{
printf("create thread2 error %sn", strerror(errno));
exit(0);
}
while(1)
{
printf("main threadn");
sleep(1);
}
}
|
你可以利用传参数进线程,
也可以在线程里直接判断键盘输入,
或者利用sem,cond
也可以在线程里直接判断键盘输入,
或者利用sem,cond