Final answer:
The options to deliver signals in a multithreaded program include delivering the signal to the thread it applies to, delivering the signal to certain threads, or assigning a specific thread to receive all signals for the process.
Step-by-step explanation:
The options that exist to deliver signals in a multithreaded program are:
- Deliver the signal to the thread to which the signal applies: This option allows the signal to be delivered specifically to the thread that needs to handle it. This is useful when different threads have different signal-handling requirements.
- Deliver the signal to certain threads in the process: This option allows the signal to be delivered to a specific set of threads within the program. This can be useful when only certain threads need to handle the signal.
- Assign a specific thread to receive all signals for the process: This option assigns a specific thread to handle all the signals for the entire process. This can be useful when all signals need to be handled by a single thread.
Therefore, the correct answer is option E) all of the above.