Multithreaded Programming Guide

Exit Print View

Updated: July 2014
 
 

Function Comparison Table

The following table compares Oracle Solaris threads functions with pthreads functions. Note that even when Oracle Solaris threads and pthreads functions appear to be essentially the same, the arguments to the functions can differ.

When a comparable interface is not available either in pthreads or Oracle Solaris threads, a hyphen `-' appears in the column. Entries in the pthreads column that are followed by (3RT) are functions in librt, the POSIX.1b Realtime Extensions library, which is not part of pthreads. Functions in this library provide most of the interfaces specified by the POSIX.1b Realtime Extension.

Table 6-2  Oracle Solaris Threads and POSIX pthreads Comparison
Oracle Solaris Threads
pthreads
thr_create()
pthread_create()
thr_exit()
pthread_exit()
thr_join()
pthread_join()
thr_yield()
sched_yield()(3RT)
thr_self()
pthread_self()
thr_kill()
pthread_kill()
thr_sigsetmask()
pthread_sigmask()
thr_setprio()
pthread_setschedparam()
thr_getprio()
pthread_getschedparam()
thr_setconcurrency()
pthread_setconcurrency()
thr_getconcurrency()
pthread_getconcurrency()
thr_suspend()
-
thr_continue()
-
thr_keycreate()
pthread_key_create()
-
pthread_key_delete()
thr_setspecific()
pthread_setspecific()
thr_getspecific()
pthread_getspecific()
-
pthread_once()
-
pthread_equal()
-
pthread_cancel()
-
pthread_testcancel()
-
pthread_cleanup_push()
-
pthread_cleanup_pop()
-
pthread_setcanceltype()
-
pthread_setcancelstate()
mutex_lock()
pthread_mutex_lock()
mutex_unlock()
pthread_mutex_unlock()
mutex_trylock()
pthread_mutex_trylock()
mutex_init()
pthread_mutex_init()
mutex_destroy()
pthread_mutex_destroy()
cond_wait()
pthread_cond_wait()
cond_timedwait()
pthread_cond_timedwait()
cond_reltimedwait()
pthread_cond_reltimedwait_np()
cond_signal()
pthread_cond_signal()
cond_broadcast()
pthread_cond_broadcast()
cond_init()
pthread_cond_init()
cond_destroy()
pthread_cond_destroy()
rwlock_init()
pthread_rwlock_init()
rwlock_destroy()
pthread_rwlock_destroy()
rw_rdlock()
pthread_rwlock_rdlock()
rw_wrlock()
pthread_rwlock_wrlock()
rw_unlock()
pthread_rwlock_unlock()
rw_tryrdlock()
pthread_rwlock_tryrdlock()
rw_trywrlock()
pthread_rwlock_trywrlock()
-
pthread_rwlockattr_init()
-
pthread_rwlockattr_destroy()
-
pthread_rwlockattr_getpshared()
-
pthread_rwlockattr_setpshared()
sema_init()
sem_init()(3RT)
sema_destroy()
sem_destroy()(3RT)
sema_wait()
sem_wait()(3RT)
sema_post()
sem_post()(3RT)
sema_trywait()
sem_trywait()(3RT)
fork1()
fork()
-
pthread_atfork()
forkall(), multiple thread copy
-
-
pthread_mutexattr_init()
-
pthread_mutexattr_destroy()
type argument in mutex_init()
pthread_mutexattr_setpshared()
-
pthread_mutexattr_getpshared()
-
pthread_mutex_attr_settype()
-
pthread_mutex_attr_gettype()
-
pthread_condattr_init()
-
pthread_condattr_destroy()
type argument in cond_init()
pthread_condattr_setpshared()
-
pthread_condattr_getpshared()
-
pthread_attr_init()
-
pthread_attr_destroy()
THR_BOUND flag in thr_create()
pthread_attr_setscope()
-
pthread_attr_getscope()
-
pthread_attr_setguardsize()
-
pthread_attr_getguardsize()
stack_size argument in thr_create()
pthread_attr_setstacksize()
-
pthread_attr_getstacksize()
stack_addr argument in thr_create()
pthread_attr_setstack()
-
pthread_attr_getstack()
THR_DETACH flag in thr_create()
pthread_attr_setdetachstate()
-
pthread_attr_getdetachstate()
-
pthread_attr_setschedparam()
-
pthread_attr_getschedparam()
-
pthread_attr_setinheritsched()
-
pthread_attr_getinheritsched()
-
pthread_attr_setsschedpolicy()
-
pthread_attr_getschedpolicy()

To use the Oracle Solaris threads functions described in this chapter for Solaris 9 and previous releases, you must link with the Oracle Solaris threads library –lthread .

Operation is virtually the same for both Oracle Solaris threads and for pthreads, even though the function names or arguments might differ. Only a brief example consisting of the correct include file and the function prototype is presented. Where return values are not given for the Oracle Solaris threads functions, see the appropriate pages in man pages section 3: Basic Library Functions for the function return values.

For more information on Oracle Solaris related functions, see the related pthreads documentation for the similarly named function.

Where Oracle Solaris threads functions offer capabilities that are not available in pthreads, a full description of the functions is provided.