Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства является частью версии 5.0 Инструментов XCode

Получить эти инструменты:

Если Вы выполняете версию Инструментов XCode кроме 5,0, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.




PTHREAD(3)               BSD Library Functions Manual               PTHREAD(3)

NAME
     pthread -- POSIX thread functions

SYNOPSIS
     #include <pthread.h>

DESCRIPTION
     POSIX threads are a set of functions that support applications with requirements for multiple flows of
     control, called threads, within a process.  Multithreading is used to improve the performance of a pro-gram. program.
     gram.

     The POSIX thread functions are summarized in this section in the following groups:

           •   Thread Routines

           •   Attribute Object Routines

           •   Mutex Routines

           •   Condition Variable Routines

           •   Read/Write Lock Routines

           •   Per-Thread Context Routines

           •   Cleanup Routines

THREAD ROUTINES
     int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void
                        *arg)
                        Creates a new thread of execution.

     int pthread_detach(pthread_t thread)
                        Marks a thread for deletion.

     int pthread_equal(pthread_t t1, pthread_t t2)
                        Compares two thread IDs.

     void pthread_exit(void *value_ptr)
                        Terminates the calling thread.

     int pthread_join(pthread_t thread, void **value_ptr)
                        Causes the calling thread to wait for the termination of the specified thread.

     int pthread_cancel(pthread_t thread)
                        Cancels execution of a thread.

     int pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
                        Calls an initialization routine once.

     pthread_t pthread_self(void)
                        Returns the thread ID of the calling thread.

     int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void))
                        Registers handlers to be called before and after fork()

ATTRIBUTE OBJECT ROUTINES
     int pthread_attr_destroy(pthread_attr_t *attr)
                        Destroy a thread attributes object.

     int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inheritsched)
                        Get the inherit scheduling attribute from a thread attributes object.

     int pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param)
                        Get the scheduling parameter attribute from a thread attributes object.

     int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy)
                        Get the scheduling policy attribute from a thread attributes object.

     int pthread_attr_getscope(const pthread_attr_t *attr, int *contentionscope)
                        Get the contention scope attribute from a thread attributes object.

     int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize)
                        Get the stack size attribute from a thread attributes object.

     int pthread_attr_getstackaddr(const pthread_attr_t *attr, void **stackaddr)
                        Get the stack address attribute from a thread attributes object.

     int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate)
                        Get the detach state attribute from a thread attributes object.

     int pthread_attr_init(pthread_attr_t *attr)
                        Initialize a thread attributes object with default values.

     int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched)
                        Set the inherit scheduling attribute in a thread attributes object.

     int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param)
                        Set the scheduling parameter attribute in a thread attributes object.

     int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
                        Set the scheduling policy attribute in a thread attributes object.

     int pthread_attr_setscope(pthread_attr_t *attr, int contentionscope)
                        Set the contention scope attribute in a thread attributes object.

     int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize)
                        Set the stack size attribute in a thread attributes object.

     int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr)
                        Set the stack address attribute in a thread attributes object.

     int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate)
                        Set the detach state in a thread attributes object.

MUTEX ROUTINES
     int pthread_mutexattr_destroy(pthread_mutexattr_t *attr)
                        Destroy a mutex attributes object.

     int pthread_mutexattr_init(pthread_mutexattr_t *attr)
                        Initialize a mutex attributes object with default values.

     int pthread_mutex_destroy(pthread_mutex_t *mutex)
                        Destroy a mutex.

     int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
                        Initialize a mutex with specified attributes.

     int pthread_mutex_lock(pthread_mutex_t *mutex)
                        Lock a mutex and block until it becomes available.

     int pthread_mutex_trylock(pthread_mutex_t *mutex)
                        Try to lock a mutex, but don't block if the mutex is locked by another thread,
                        including the current thread.

     int pthread_mutex_unlock(pthread_mutex_t *mutex)
                        Unlock a mutex.

CONDITION VARIABLE ROUTINES
     int pthread_condattr_init(pthread_condattr_t *attr)
                        Initialize a condition variable attributes object with default values.

     int pthread_condattr_destroy(pthread_condattr_t *attr)
                        Destroy a condition variable attributes object.

     int pthread_cond_broadcast(pthread_cond_t *cond)
                        Unblock all threads currently blocked on the specified condition variable.

     int pthread_cond_destroy(pthread_cond_t *cond)
                        Destroy a condition variable.

     int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr)
                        Initialize a condition variable with specified attributes.

     int pthread_cond_signal(pthread_cond_t *cond)
                        Unblock at least one of the threads blocked on the specified condition variable.

     int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec
                        *abstime)
                        Atomically unlock the specified mutex and block on a condition or until the speci-fied specified
                        fied time passes.

     int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *mutex)
                        Atomically unlock the specified mutex and block on a condition.

READ/WRITE LOCK ROUTINES
     int pthread_rwlock_destroy(pthread_rwlock_t *lock)
                        Destroy a read/write lock object.

     int pthread_rwlock_init(pthread_rwlock_t *lock, const pthread_rwlockattr_t *attr)
                        Initialize a read/write lock object.

     int pthread_rwlock_rdlock(pthread_rwlock_t *lock)
                        Lock a read/write lock for reading, blocking until the lock can be acquired.

     int pthread_rwlock_tryrdlock(pthread_rwlock_t *lock)
                        Attempt to lock a read/write lock for reading, without blocking if the lock is
                        unavailable.

     int pthread_rwlock_trywrlock(pthread_rwlock_t *lock)
                        Attempt to lock a read/write lock for writing, without blocking if the lock is
                        unavailable.

     int pthread_rwlock_unlock(pthread_rwlock_t *lock)
                        Unlock a read/write lock.

     int pthread_rwlock_wrlock(pthread_rwlock_t *lock)
                        Lock a read/write lock for writing, blocking until the lock can be acquired.

     int pthread_rwlockattr_destroy(pthread_rwlockattr_t *attr)
                        Destroy a read/write lock attribute object.

     int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *attr, int *pshared)
                        Retrieve the process shared setting for the read/write lock attribute object.

     int pthread_rwlockattr_init(pthread_rwlockattr_t *attr)
                        Initialize a read/write lock attribute object.

     int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *attr, int pshared)
                        Set the process shared setting for the read/write lock attribute object.

PER-THREAD CONTEXT ROUTINES
     int pthread_key_create(pthread_key_t *key, void (*routine)(void *))
                        Create a thread-specific data key.

     int pthread_key_delete(pthread_key_t key)
                        Delete a thread-specific data key.

     void * pthread_getspecific(pthread_key_t key)
                        Get the thread-specific value for the specified key.

     int pthread_setspecific(pthread_key_t key, const void *value_ptr)
                        Set the thread-specific value for the specified key.

CLEANUP ROUTINES
     void pthread_cleanup_pop(int execute)
                        Remove the routine at the top of the calling thread's cancellation cleanup stack and
                        optionally invoke it.

     void pthread_cleanup_push(void (*routine)(void *), void *routine_arg)
                        Push the specified cancellation cleanup handler onto the calling thread's cancella-tion cancellation
                        tion stack.

INSTALLATION
     The default system libraries include pthread functions.  No additional libraries or CFLAGS are neces-sary necessary
     sary to use these interfaces.

SEE ALSO
     pthread_atfork(3), pthread_attr(3), pthread_attr_init_destroy(3), pthread_attr_getdetachstate(3),
     pthread_attr_getinheritsched(3), pthread_attr_getschedparam(3), pthread_attr_getschedpolicy(3),
     pthread_attr_getscope(3), pthread_attr_getstackaddr(3), pthread_attr_getstacksize(3),
     pthread_attr_init(3), pthread_attr_init_destroy(3), pthread_attr_setdetachstate(3),
     pthread_attr_setinheritsched(3), pthread_attr_setschedparam(3), pthread_attr_setschedpolicy(3),
     pthread_attr_setscope(3), pthread_attr_setstackaddr(3), pthread_attr_setstacksize(3),
     pthread_cancel(3), pthread_cleanup_pop(3), pthread_cleanup_push(3), pthread_cond_broadcast(3),
     pthread_cond_destroy(3), pthread_cond_init(3), pthread_cond_signal(3), pthread_cond_timedwait(3),
     pthread_cond_wait(3), pthread_condattr(3), pthread_condattr_destroy(3), pthread_condattr_init(3),
     pthread_create(3), pthread_detach(3), pthread_equal(3), pthread_exit(3), pthread_getschedparam(3),
     pthread_getspecific(3), pthread_join(3), pthread_key_create(3), pthread_key_delete(3),
     pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_trylock(3),
     pthread_mutex_unlock(3), pthread_mutexattr(3), pthread_mutexattr_destroy(3),
     pthread_mutexattr_getprioceiling(3), pthread_mutexattr_getprotocol(3), pthread_mutexattr_gettype(3),
     pthread_mutexattr_init(3), pthread_mutexattr_setprioceiling(3), pthread_mutexattr_setprotocol(3),
     pthread_mutexattr_settype(3), pthread_once(3), pthread_rwlock_destroy(3), pthread_rwlock_init(3),
     pthread_rwlock_rdlock(3), pthread_rwlock_tryrdlock(3), pthread_rwlock_trywrlock(3),
     pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3), pthread_rwlockattr_destroy(3),
     pthread_rwlockattr_getpshared(3), pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3),
     pthread_self (3), pthread_setcancelstate (3) pthread_setcanceltype (3) pthread_setschedparam (3)
     pthread_setspecific (3) pthread_testcancel (3)

STANDARDS
     The functions with the pthread_ prefix and not _np suffix or pthread_rwlock prefix conform to ISO/IEC
     9945-1:1996 (``POSIX.1'').

     The functions with the pthread_ prefix and _np suffix are non-portable extensions to POSIX threads.

     The functions with the pthread_rwlock prefix are extensions created by The Open Group as part of the
     Version 2 of the Single UNIX Specification (``SUSv2'').

Darwin                         November 5, 2001                         Darwin

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации со ссылками на отзыв ниже.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API через Генератор отчетов Ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.