iphone线程同步

时间:2010-07-21 20:33:32

标签: iphone multithreading synchronization

我是java开发人员,需要在iPhone中进行线程同步。我有一个线程,它调用其他一个,需要等待该子线程结束。 在java中我使用monitor,通过调用wait / notify

我如何在iphone中编程?

感谢

3 个答案:

答案 0 :(得分:1)

NSConditionLock完成所有工作

答案 1 :(得分:0)

答案 2 :(得分:0)

就个人而言,我更喜欢pthreads。要阻止线程完成,您需要pthread_join或者,您可以设置pthread_cond_t并让调用线程等待,直到子线程通知它。

void* TestThread(void* data) {
    printf("thread_routine: doing stuff...\n");
    sleep(2);
    printf("thread_routine: done doing stuff...\n");
    return NULL;    
}

void CreateThread() {
    pthread_t myThread;
    printf("creating thread...\n");
    int err = pthread_create(&myThread, NULL, TestThread, NULL);
    if (0 != err) {
        //error handling
        return;
    }
    //this will cause the calling thread to block until myThread completes.
    //saves you the trouble of setting up a pthread_cond
    err = pthread_join(myThread, NULL);
    if (0 != err) {
        //error handling
        return;
    }
    printf("thread_completed, exiting.\n");
}