ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ¸ñ Àû
Code#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
class tClass1 {
private :
char* buf;
public :
void method(void) {
buf = new char[100];
while (1) {
printf("This is thread 1\n");
sleep(1);
}
}
~tClass1(void) {
delete[] buf;
printf("Thread 1 exit\n");
}
};
class tClass2 {
private :
char* buf;
public :
void method(void) {
buf = new char[100];
while (1) {
printf("This is thread 2\n");
sleep(1);
}
}
~tClass2(void) {
delete[] buf;
printf("Thread 2 exit\n");
}
};
tClass1* pClass1;
tClass2* pClass2;
pthread_t pt1, pt2;
void* tFunc1(void* arg) {
pClass1->method();
}
void* tFunc2(void* arg) {
pClass2->method();
}
void hanSigInt(int sig) {
printf("Got signal %d\n", sig);
sleep(3);
printf("Leave handle of signal\n");
}
void hanSigTerm(int sig) {
printf("Got signal %d\n", sig);
pthread_cancel(pt1);
pthread_cancel(pt2);
delete pClass1;
delete pClass2;
sleep(3);
pthread_join(pt1, NULL);
pthread_join(pt2, NULL);
printf("Leave this program\n");
exit(EXIT_SUCCESS);
}
int main(void) {
daemon(1, 1);
pClass1 = new tClass1;
pClass2 = new tClass2;
signal(SIGINT, hanSigInt);
signal(SIGTERM, hanSigTerm);
pthread_create(&pt1, NULL, tFunc1, NULL);
pthread_create(&pt2, NULL, tFunc2, NULL);
while (1) {
printf("This is main\n");
sleep(1);
}
exit(EXIT_SUCCESS);
}
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|