쓰레드 질문 - 서버프로그램과 같이.
세가지의 프로그램을 하나로 합쳐서 쓰레드로 돌릴려고 합니다.
그래서 예를들면,
int volatile i=4;
char volatile a[100]={0,};
while(i!=0){
scanf("%d", &i);
if(i==1){
pthread_create(1); 계속 패킷을 보내는 프로그램
}
else if(i==2){
pthread_create(2); 계속 패킷을 받고, 로그를 하는 프로그램
}
else if(i==3){
pthread_create(3); 계속 어떤 자료를 받아서, 전역변수 char volatile a[]에 저장
}
else if(i==0){
break;
}
else{
continue;
}
pthread_join(1);
pthread_join(2);
pthread_join(3);
printf("프로그램종료");
return 0;
}
이런 구조의 프로그램이 있다고 할때,
scanf로부터 특정 값을 받았을때, 예를들면 1 off 라고하면 쓰레드 1번이 끝나도록하고,
다시 1 on 이라고 했을때 쓰레드 1번이 시작하도록 하는데 문제가 없을까요?
즉, 3개의 쓰레드를 입력값에 따라서 실행하고, 또 입력값에 따라서 끝내고 싶습니다.
또 실행할 수도 있구요...
위에서 처럼만 짜면 문제 없을까요?
그냥 pthread_cancel을 호출하면 않된다고 하던데요...
하여튼 무한 루프를 돌면서 쓰레드를 생성거나 끝내고 싶습니다.
어떻게 하면 될까요?
감사합니다~~~
추신 : 새해 복 많이 받으세요~~~
댓글 달기