Diferencia entre la clase estática y el patrón singleton?

Qué diferencia real (es decir, práctica) existe entre una clase estática y un patrón singleton?

Both se puede invocar sin instanciación, ambos proporcionan solo una "Instancia" y ninguno de ellos es seguro para subprocesos. ¿Hay alguna otra diferencia?