He estado debatiéndome esto durante los últimos minutos, y veo razones para sí y no. Esto se derivó de mirar las respuestas al Java HashMap vs. Hashtable y ver a varias personas decir que Hashtable es de hecho más lento.¿Son los métodos sincronizados más lentos en aplicaciones con un solo subproceso?
Me parece que un método sincronizado debe actuar absolutamente igual que su contraparte no sincronizada si se ejecuta en un solo hilo, ya que la acción de sincronización no debe bloquear nada. Dicho esto, me imagino que el compilador maneja los dos casos de manera diferente y es por eso que la gente dice que sincronizar es más lento.
Noque es de ninguna manera concluyentes, pero me encontré con algunas pruebas sencillas en HashMap vs Hashtable, y vio poca diferencia en la velocidad.
El cuello de botella estaría en su algoritmo. Por lo tanto, la sobrecarga de sincronización debe ser menor. – sybreon