Skip Navigation Links | |
Exit Print View | |
Multithreaded Programming Guide Oracle Solaris 11 Express 11/10 |
1. Covering Multithreading Basics
4. Programming with Synchronization Objects
5. Programming With the Solaris Software
Forking Issues in Process Creation
Fork-One Safety Problem and Solution
Process Creation: exec and exit Issues
Nonlocal Goto: setjmp and longjmp
Setting the Thread's Signal Mask
Sending a Signal to a Specific Thread
Waiting for a Specified Signal
Waiting for Specified Signal Within a Given Time
Signal Handlers and Async-Signal Safety
Interrupted Waits on Condition Variables
I/O as a Remote Procedure Call
Waiting for I/O Operation to Complete
Shared I/O and New I/O System Calls
6. Programming With Solaris Threads
Over several releases, the Solaris OS has evolved to a per-process mode for alarms, interval timers, and profiling.
All timers are per-process except for the real time profile interval timer, which is per_LWP. See the setitimer(2) man page for a description of the ITIMER_REALPROF timer.
The timer IDs of per-process timers are usable from any LWP. The expiration signals are generated for the process rather than directed to a specific LWP.
The per-process timers are deleted only by timer_delete(3RT), or when the process terminates.
Alarms operate at the process level, not at the thread level. The alarm() function sends the signal SIGALRM to the calling process rather than the calling thread.
The profil() system call for multithreaded processes has global impact on all LWPs and threads in the process. Threads cannot use profil() for individual thread profiling. See the profil(2) man page for more information.
Tip - The Performance Analyzer tool, included in the Sun Studio software, can be used for extensive profiling of multithreaded and single threaded programs. The tool enables you to see in detail what a thread is doing at any given point. See the Sun Studio web page and Sun Studio Information Center for more information.