Spurious wakeup

In the multithreaded programming, it is very common to create a structure where a thread waits for signals from another one. An example can be a program with a graphic interface: the graphics thread, used to manage user inputs, can be blocked while another thread downloads information: what if the graphics thread is waked up without a reason?