Does wp-cron runs all tasks scheduled at same time together or one after other?

For example about 12:00 it should run 3 tasks.

If You use wp-cron it will start when someone visit Your page about 12:00. ( Here is small complication because when two users visit Your page exactly in the same moment cron can start twice and do everything twice ).

However someone opens our page round 12:00 and cron starts. It pulls all the scheduled events in array. Set transient that cron is busy and start all process inside foreach statement using call_user_func_array ( it is almost the same as do_action but for array ).

Procedure in foreach:

  • reschedule if necessary;
  • unschedule before start of job;
  • call_user_func_array ( do the job );
  • check cron lock because if the hook ran too long and another cron process stole the lock, cron quits loop;

My small tips:

  • crontab can be better solution;
  • don’t forget about some logging to test your cron task;
  • if cron’s one of jobs fails it has no impact on other tasks ( if i am wrong please correct me );

Here You have some extra information wrote in article by my friend:
Cron solutions for wordpress