IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 5 > threads man page

threads man page

Section 5 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





Standards, Environments, and Macros                    threads(5)



NAME
     threads, pthreads - POSIX pthreads and Solaris threads  con-
     cepts

SYNOPSIS
  POSIX
     cc -mt [ flag... ] file... -lpthread [ -lrt library... ]

     #include <pthread.h>

  Solaris
     cc -mt [ flag... ] file... [ library... ]

     #include <sched.h>

     #include <thread.h>

DESCRIPTION
     POSIX and Solaris threads each have their own implementation
     of  the  threads library. The  libpthread library is associ-
     ated with POSIX; the libthread library  is  associated  with
     Solaris. Both implementations are interoperable, their func-
     tionality similar, and can be used within the same  applica-
     tion. Only POSIX threads are guaranteed to be fully portable
     to other POSIX-compliant  environments.  POSIX  and  Solaris
     threads  require different source, include files and linking
     libraries. See SYNOPSIS.

  Similarities
     Most of the  functions  in  the  libpthread  and  libthread,
     libraries  have  a  counterpart  in  the other corresponding
     library. POSIX function names, with  the  exception  of  the
     semaphore names, have a "pthread" prefix. Function names for
     similar POSIX and Solaris have similar  endings.  Typically,
     similar POSIX and Solaris functions have the same number and
     use of arguments.

  Differences
     POSIX pthreads and Solaris threads differ in  the  following
     ways:

       o  POSIX threads are more portable.

       o  POSIX  threads  establish  characteristics   for   each
          thread according to configurable attribute objects.

       o  POSIX pthreads implement thread cancellation.

       o  POSIX pthreads enforce scheduling algorithms.

       o  POSIX pthreads allow for clean-up handlers for  fork(2)
          calls.



SunOS 5.10          Last change: 11 Aug 2006                    1






Standards, Environments, and Macros                    threads(5)



       o  Solaris threads can be suspended and continued.

       o  Solaris threads  implement  interprocess  robust  mutex
          locks.

       o  Solaris threads implement  daemon  threads,  for  whose
          demise the process does not wait.


Function Comparison
     The following table compares the POSIX pthreads and  Solaris
     threads functions. When a comparable interface is not avail-
     able either in POSIX pthreads  or Solaris threads, a  hyphen
     (-) appears in the column.

  Functions Related to Creation
           POSIX (libpthread)             Solaris (libthread)
     pthread_create()                 thr_create()
     pthread_attr_init()              -
     pthread_attr_setdetachstate()    -
     pthread_attr_getdetachstate()    -
     pthread_attr_setinheritsched()   -
     pthread_attr_getinheritsched()   -
     pthread_attr_setschedparam()     -
     pthread_attr_getschedparam()     -
     pthread_attr_setschedpolicy()    -
     pthread_attr_getschedpolicy()    -
     pthread_attr_setscope()          -
     pthread_attr_getscope()          -
     pthread_attr_setstackaddr()      -
     pthread_attr_getstackaddr()      -
     pthread_attr_setstacksize()      -
     pthread_attr_getstacksize()      -
     pthread_attr_getguardsize()      -
     pthread_attr_setguardsize()      -
     pthread_attr_destroy()           -
     -                                thr_min_stack()


  Functions Related to Exit
         POSIX (libpthread)            Solaris (libthread)
     pthread_exit()                thr_exit()
     pthread_join()                thr_join()
     pthread_detach()              -


  Functions Related to Thread Specific Data
         POSIX (libpthread)            Solaris (libthread)
     pthread_key_create()          thr_keycreate()
     pthread_setspecific()         thr_setspecific()
     pthread_getspecific()         thr_getspecific()
     pthread_key_delete()          -



SunOS 5.10          Last change: 11 Aug 2006                    2






Standards, Environments, and Macros                    threads(5)



  Functions Related to Signals
         POSIX (libpthread)            Solaris (libthread)
     pthread_sigmask()             thr_sigsetmask()
     pthread_kill()                thr_kill()


  Functions Related to IDs
         POSIX (libpthread)            Solaris (libthread)
     pthread_self()                thr_self()
     pthread_equal()               -
     -                             thr_main()


  Functions Related to Scheduling
         POSIX (libpthread)            Solaris (libthread)
     -                             thr_yield()
     -                             thr_suspend()
     -                             thr_continue()
     pthread_setconcurrency()      thr_setconcurrency()
     pthread_getconcurrency()      thr_getconcurrency()
     pthread_setschedparam()       thr_setprio()
     pthread_getschedparam()       thr_getprio()


  Functions Related to Cancellation
         POSIX (libpthread)            Solaris (libthread)
     pthread_cancel()              -
     pthread_setcancelstate()      -
     pthread_setcanceltype()       -
     pthread_testcancel()          -
     pthread_cleanup_pop()         -
     pthread_cleanup_push()        -


  Functions Related to Mutexes
               POSIX (libpthread)             Solaris (libthread)
     pthread_mutex_init()                     mutex_init()
     pthread_mutexattr_init()                 -
     pthread_mutexattr_setpshared()           -
     pthread_mutexattr_getpshared()           -
     pthread_mutexattr_setprotocol()          -
     pthread_mutexattr_getprotocol()          -
     pthread_mutexattr_setprioceiling()       -
     pthread_mutexattr_getprioceiling()       -
     pthread_mutexattr_settype()              -
     pthread_mutexattr_gettype()              -
     pthread_mutexattr_destroy()              -
     pthread_mutex_setprioceiling()           -
     pthread_mutex_getprioceiling()           -
     pthread_mutex_lock()                     mutex_lock()
     pthread_mutex_trylock()                  mutex_trylock()
     pthread_mutex_unlock()                   mutex_unlock()



SunOS 5.10          Last change: 11 Aug 2006                    3






Standards, Environments, and Macros                    threads(5)



     pthread_mutex_destroy()                  mutex_destroy()


  Functions Related to Condition Variables
          POSIX (libpthread)             Solaris (libthread)
     pthread_cond_init()             cond_init()
     pthread_condattr_init()         -
     pthread_condattr_setpshared()   -
     pthread_condattr_getpshared()   -
     pthread_condattr_destroy()      -
     pthread_cond_wait()             cond_wait()
     pthread_cond_timedwait()        cond_timedwait()
     pthread_cond_signal()           cond_signal()
     pthread_cond_broadcast()        cond_broadcast()
     pthread_cond_destroy()          cond_destroy()


  Functions Related to Reader/Writer Locking
           POSIX (libpthread)              Solaris (libthread)
     pthread_rwlock_init()             rwlock_init()
     pthread_rwlock_rdlock()           rw_rdlock()
     pthread_rwlock_tryrdlock()        rw_tryrdlock()
     pthread_rwlock_wrlock()           rw_wrlock()
     pthread_rwlock_trywrlock()        rw_trywrlock()
     pthread_rwlock_unlock()           rw_unlock()
     pthread_rwlock_destroy()          rwlock_destroy()
     pthread_rwlockattr_init()         -
     pthread_rwlockattr_destroy()      -
     pthread_rwlockattr_getpshared()   -
     pthread_rwlockattr_setpshared()   -


  Functions Related to Semaphores
         POSIX (libpthread)            Solaris (libthread)
     sem_init()                    sema_init()
     sem_open()                    -
     sem_close()                   -
     sem_wait()                    sema_wait()
     sem_trywait()                 sema_trywait()
     sem_post()                    sema_post()
     sem_getvalue()                -
     sem_unlink()                  -
     sem_destroy()                 sema_destroy()


  Functions Related to fork() Clean Up
         POSIX (libpthread)            Solaris (libthread)
     pthread_atfork()              -


  Functions Related to Limits
         POSIX (libpthread)            Solaris (libthread)



SunOS 5.10          Last change: 11 Aug 2006                    4






Standards, Environments, and Macros                    threads(5)



     pthread_once()                -


  Functions Related to Debugging
         POSIX (libpthread)            Solaris (libthread)
     -                             thr_stksegment()


LOCKING
  Synchronization
     POSIX   (libpthread)         Solaris   (libthread)    Multi-
     threaded behavior is asynchronous, and therefore,  optimized
     for concurrent and parallel processing. As  threads,  always
     from  within  the  same process and  sometimes from multiple
     processes, share global data with each other, they  are  not
     guaranteed  exclusive access to the shared data at any point
     in time. Securing mutually exclusive access to  shared  data
     requires   synchronization among the threads. Both POSIX and
     Solaris implement four synchronization mechanisms:  mutexes,
     condition   variables,   reader/writer  locking   (optimized
     frequent-read occasional-write mutex), and semaphores.

     Synchronizing multiple threads diminishes their concurrency.
     The  coarser  the  grain  of  synchronization,  that is, the
     larger the block of code that is locked, the lesser the con-
     currency.

  MT fork()
     If a POSIX threads  program  calls  fork(2),  it  implicitly
     calls  fork1(2),  which  replicates only the calling thread.
     Should there be any outstanding mutexes throughout the  pro-
     cess, the application should call pthread_atfork(3C) to wait
     for and acquire those mutexes prior to calling fork().

SCHEDULING
  POSIX
     Scheduling allocation size per thread is greater  than  one.
     POSIX supports the following three scheduling policies:

     SCHED_OTHER     Timesharing (TS) scheduling  policy.  It  is
                     based on the timesharing scheduling class.



     SCHED_FIFO      First-In-First-Out (FIFO) scheduling policy.
                     Threads  scheduled  to  this  policy, if not
                     pre-empted  by  a  higher   priority,   will
                     proceed until completion. Threads whose con-
                     tention        scope        is        system
                     (PTHREAD_SCOPE_SYSTEM) are in real-time (RT)
                     scheduling class. The calling  process  must
                     have  a  effective  user ID of 0. SCHED_FIFO



SunOS 5.10          Last change: 11 Aug 2006                    5






Standards, Environments, and Macros                    threads(5)



                     for threads whose contention scope's process
                     (PTHREAD_SCOPE_PROCESS)  is  based on the TS
                     scheduling class.



     SCHED_RR        Round-Robin   scheduling   policy.   Threads
                     scheduled  to this policy, if not pre-empted
                     by a higher priority,  will  execute  for  a
                     time   period   determined  by  the  system.
                     Threads whose  contention  scope  is  system
                     (PTHREAD_SCOPE_SYSTEM) are in real-time (RT)
                     scheduling class  and  the  calling  process
                     must have a effective user ID of 0. SCHED_RR
                     for threads whose contention scope  is  pro-
                     cess (PTHREAD_SCOPE_PROCESS) is based on the
                     TS scheduling class.



  Solaris
     Only scheduling policy supported is  SCHED_OTHER,  which  is
     timesharing, based on the TS scheduling class.

ERRORS
     In a multi-threaded application linked  with  libpthread  or
     libthread,  EINTR  may  be  returned whenever another thread
     calls  fork(2), which calls  fork1(2) instead.

USAGE
  -mt compiler option
     The -mt compiler option compiles and links for multithreaded
     code.  It  compiles  source files with -D_REENTRANT and aug-
     ments the set of support libraries to  include  -lthread  in
     the required order.

     To ensure proper library  linking  order,  use  this  option
     rather than -lthread to link with libthread.

ATTRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | MT-Level                    | MT-Safe, Fork 1-Safe        |
    |_____________________________|_____________________________|


SEE ALSO




SunOS 5.10          Last change: 11 Aug 2006                    6






Standards, Environments, and Macros                    threads(5)



     crle(1),     fork(2),     libpthread(3LIB),     librt(3LIB),
     libthread(3LIB),   pthread_atfork(3C),   pthread_create(3C),
     attributes(5), standards(5)

     Linker and Libraries Guide


















































SunOS 5.10          Last change: 11 Aug 2006                    7





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:28:01 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (5334 hits)
(openSUSE 10.2)

svn man page (5208 hits)
(FreeBSD 6.2)

adv_cap_autoneg man page (4870 hits)
(Solaris 10 11_06)

CPAN man page (4607 hits)
(Suse Linux 10.1)

ssh man page (4342 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (2877 hits)
(Solaris 10 11_06)

netcat man page (2717 hits)
(Suse Linux 10.1)

pprosetup man page (2487 hits)
(Solaris 10 11_06)

startproc man page (2471 hits)
(Suse Linux 10.1)

signal man page (2407 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Location :: Prototype Electronic Assembly :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum