C에서 Thread를 구현하기 위해서는 pthread.h 함수를 사용해야 한다. 


기본적인 Thread 함수

pthread_create

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
  • 쓰레드 생성을 위해서 사용 
  • 첫번째 인자인 thread 는 쓰레드가 성공적으로 생성되었을때 생성된 쓰레드를 식별하기 위해서 사용되는 쓰레드 식별자 
  • 두번째 인자인 attr 은 쓰레드 특성을 지정하기 위해서 사용, 기본 쓰레드 특성을 이용하고자 할경우에 NULL 을 사용 
  • 세번째 인자인 start_routine는 분기시켜서 실행할 쓰레드 함수
  • 네번째 인자는 쓰레드 함수의 인자
  • 리턴값은 성공시 0, 실패시 0 이상의 수

예제 example_1.c

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

/* 쓰레드 함수 */
void *t_function(void *data)
{
    int id;
    int i = 0;

    id = *((int *)data);

    while(1)
    {
        printf("%d : %d\n", id, i);
        i++;
        sleep(1);
    }

    return;
}

int main()
{
    pthread_t p_thread[2];

    int thr_id;
    int status;
    int a = 1;
    int b = 2;

    /* 쓰레드 생성 인자로 1을 넘긴다 */
    thr_id = pthread_create(&p_thread[0], NULL, t_function, (void *)&a);
    if(0 < thr_id)
    {
        perror("thread create error : ");
        exit(0);
    }

    /* 쓰레드 생성 인자로 2를 넘긴다 */
    thr_id = pthread_create(&p_thread[1], NULL, t_function, (void *)&b);
    if(0 < thr_id)
    {
        perror("thread create error : ");
        exit(0);
    }

    /* 쓰레드 종료를 기다린다
     * 실행된 쓰레드에 대해서는 pthread_join 등의 함수를 이용하여 쓰레드가 종료될 때까지 기다려 주어야 한다.
     * pthread_join은 일종의 fork의 wait과 비슷하게 작동하며, 쓰레드 자원을 해제 시켜준다.*/
    
    pthread_join(p_thread[0], (void **)&status);
    pthread_join(p_thread[1], (void **)&status);
    
    return 0;
}


저작자 표시
신고

'컴퓨터 언어 > C' 카테고리의 다른 글

pThread를 이용한 Thread  (0) 2013.03.05
Static 변수  (0) 2013.02.25
메세지 기법  (0) 2013.01.16
배열의 이름은 첫번째 원소의 주소이다.  (0) 2012.12.20
문자열, 그것은 배열.  (2) 2012.06.11
Makefile을 작성하자.  (2) 2012.06.10

자바의 기본 문법은 C/C++과 유사하다

int i = 1;  // 주석  
int sum = 0; /* 주석 */
for(i = 1; i <= 10; i++)
{
    sum = sum + i;
}

코드의 일 부분으로서 C나 다른 언어에 비해 크게 다르지 않다. 


식별자(Identifier)

  • 변수, 클래스, 메소드, 레이블 등의 이름
  • 프로그래머가 만드는 이름
작명규친은 
  • 대소문자 구분
  • 길이에 제한이 없음
  • 영 대소문자, 한글, 숫자, '_', '$' 사용하며 숫자로 시작 할 순 없다.
  • 키워드들은 사용불가


저작자 표시
신고
통합 개발환경을 구성하여 편하게 개발할 수 있다.
  • IDE
    • 소스 편집, 컴파일, 실행, 디버깅 등
    • 다양한 Java IDE가 존재한다.
      • Eclipse
        • http://www.eclipse.org
        • Java 이외에도 다양한 언어를 지원
        • Eclipse IDE for Java Developers를 다운받아 설치



저작자 표시
신고


티스토리 툴바