1. A method for scheduling tasks for execution, comprising: ordering by a computer processor tasks that are scheduled to execute at a scheduled time in a queue; providing by a computer processor a timer thread for monitoring status of tasks in said queue and for selectively dispatching tasks; providing by a computer processor a guard thread for monitoring status of tasks in said queue and for selectively creating timer threads; operating by a computer processor said guard thread responsive to a next task in said queue becoming ready for execution at a scheduled time while a first timer thread is still processing a prior task to create a new timer thread for dispatching said next task at the scheduled time and marking said first timer thread for closure; operating by a computer processor said guard thread for selectively setting and resetting a boolean value in timer threads, with said boolean value being set in a timer thread and said boolean value being reset to mark a prior timer thread for closure; and responsive to said prior task completing, closing by a computer processor said first timer thread, wherein the method being performed by a data processing system having at least one computer processor.