关于java 中的线程同步问题,求大神解释。

对于一个已经继承了Runnable 接口的类来说,假设创建了一个它的实例为 account,
那么:
for(int i=0;i<500;i++)
{
new Thread(account).start();

}
不会造成500个线程同步访问同一资源而引发冲突?

为什么:
                        private ExecutorService executor = Executors.newCachedThreadPool();                //在线程池中为每个等待的任务创建一个线程
                        for(int i=0;i<500;i++)
                        {
                                        executor.execute(account);  
                        }
                        这样就会造成线程同步访问同一临界资源冲突呢?

或者说,其实都能产生线程同步访问同一临界资源冲突的情况,只不过后者可以在临界资源程序块 加上 synchronized 关键字,使其变成线程安全的;
而前者加上也不起作用呢?