검색어 입력폼

운영체제 수업중 simple threaded program과 canceling a thread 해석 및 주석

저작시기 2009.03 |등록일 2009.03.31 워드파일MS 워드 (docx) | 5페이지 | 가격 1,500원

소개글

운영체제 수업중 simple threaded program과 canceling a thread 해석 및 주석

목차

1.1 A simple threaded program
1..2 Canceling a Thread
2. 다음 프로그램의 실행결과, 출력 내용과 그 순서에 대해 설명하시오.

본문내용

1.1 A simple threaded program
하나의 프로그램 안에서 실행의 여러 흐름을 쓰레드라고 한다. 쓰레드는 프로세스 내부 제의 시쿼스이며, 실제 모든 프로세스는 적어도 하나의 실행 쓰레드를 가진다.

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>

void *thread_function(void *arg);

char message[] = "Hello World";

int main() {
int res;
pthread_t a_thread;
void *thread_result;

res = pthread_create(&a_thread, NULL, thread_function, (void *)message);
if (res != 0) {
perror("Thread creation failed");
exit(EXIT_FAILURE);
}
printf("Waiting for thread to finish...n");
res = pthread_join(a_thread, &thread_result);
if (res != 0) {
perror("Thread join failed");
exit(EXIT_FAILURE);
}
printf("Thread joined, it returned %sn", (char *)thread_result);
printf("Message is now %sn", message);
exit(EXIT_SUCCESS);
}
void *thread_function(void *arg) {
printf("thread_function is running. Argument was %sn", (char *)arg);
sleep(3);
strcpy(message, "Bye!");
pthread_exit("Thank you for the CPU time"); //스레드가 종료할 때 함수 호출부분
}




Void *thread_function(void *arg);
Pthread_create가 받아들이는 인자의 형식에 맞게, 이함수는 void에 대한 포인터를 인자로 받고 void에 대한 포인터를 반환한다.
main에서 몇 가지 변수를 선언하고 새로운 쓰레드의 실행을 시작하기 위해 pthread_create를 호출한다.
Pthread_t a_thread;
Void *thread_result;
Res = pthread_create(&a_thread, NULL, thread_function, (void *)message);
앞에서 만든 쓰레드를 참조하기 위한 pthread_t 객체의 주소를 전달한다. 기본 쓰레드 특성을 변경할 필요가 없기 때문에, 두번째 인자로 NULL을 전달한다. 마지막 두 가지 인자는 호출할 함수와 함수에 전달할 매개변수이다. 호출이 성공하면, 두 개의 쓰레드가 실행중인 것이다. 원래 쓰레드(main)는 실행을 계속하고 pthread_create 이후의 코드를 실행하고, 새로운 쓰레드는 thread_function이라는 이름을 가진 함수에서 실행을 시작한다.

중략....

참고 자료

없음
다운로드 맨위로