多线程上怎么协调

多线程下如何协调
程序中创建了多个线程?当程序退出时,如何将所有线程都强行结束掉?

------解决方案--------------------
建个全局的信号量CEvent,每个线程中WaitForSingleObject,当程序结束的时候SetEvent(),这样就结束掉了
------解决方案--------------------
本来就是强行结束的,主线程退出CRT会调用ExitProcess(0),效果就是强制结束各个线程

是有其他的设计考虑么?