스레드 라이브러리는 프로그래머에게 스레드를 생성하고 관리하기 위한 API를 제공한다.
이것을 구현하는 2가지 방법이 있다.
1 ) 커널의 지원 없이 사용자 공간에만 라이브러리를 제공하는 방법
- POSIX Pthreads
2 ) 운영체제에 의해 지원되는 커널 수준 라이브러리를 구현하는 방법
- WINDOWS 스레드 라이브러리, Java 스레드 API
현재는 POSIX Pthreads, Windows, Java의 세 종류 라이브러리가 주로 사용된다.
1 ) Pthreads
pthread_create(&tid, &attr, runner, argv[1]) // 스레드 생성
pthread_join(tid, NULL); // 자식 프로세스 기다리기
pthread_exit() // 스레드 종료
2 ) Windows
CreateThread() // 스레드 생성
WaitForSingleObject() // 자식 프로세스 종료 기다리기
CloseHandle() // 스레드 종료
3 ) Java
Pthreads와 Windows는 전역 변수를 이용할 수 있지만 자바에는 전역 변수가 없기 때문에 class객체를 만들어 사용한다.
주로 Runnable 인터페이스를 구현하는 클래스를 정의한다.
new Thread(runnable객체 념겨줌) // 스레드 생성
thread.join() // 자식 기다림
자세한 공부는 책을 참고해야할 것 같다.