Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DateFormat:创建新实例或调用子类getInstance()方法?_Java_Multithreading_Synchronization_Date Format - Fatal编程技术网

Java DateFormat:创建新实例或调用子类getInstance()方法?

Java DateFormat:创建新实例或调用子类getInstance()方法?,java,multithreading,synchronization,date-format,Java,Multithreading,Synchronization,Date Format,使用DateFormat子类的正确方法是什么?要显式地实例化它,还是使用其定义类的一个静态方法 此外,在SimpleDataFormat文档中,关于同步,它指出: 同步 日期格式不同步。建议这样做 为每个线程创建单独的格式实例。如果多个 线程同时访问一种格式,它必须同步 外部 那么,在单线程应用程序中最好的方法是什么?多线程的呢?每个线程都有一个新实例,还是一个访问已同步的公共实例? 在后一种情况下,我想最好是共享模式,并在需要时创建新实例,但我希望得到您的建议。作为经验法则: 单线程:可以重

使用
DateFormat
子类的正确方法是什么?要显式地实例化它,还是使用其定义类的一个静态方法

此外,在SimpleDataFormat文档中,关于同步,它指出:

同步

日期格式不同步。建议这样做 为每个线程创建单独的格式实例。如果多个 线程同时访问一种格式,它必须同步 外部

那么,在单线程应用程序中最好的方法是什么?多线程的呢?每个线程都有一个新实例,还是一个访问已同步的公共实例?
在后一种情况下,我想最好是共享模式,并在需要时创建新实例,但我希望得到您的建议。

作为经验法则:

  • 单线程:可以重用DateFormat实例

  • 多线程环境:每次使用时创建一个新实例


当然,这取决于用例是什么。@OliCharlesworth当我需要一个方法中的单个实例时,或者当我想在多个方法之间共享一个模式(即日期格式化程序)时。从javadocs中,我不知道使用工厂方法是否总是更好。这就是让我困惑的地方。你不能显式地实例化它;这是一个抽象类,很好。因此,您不建议在任何情况下使用DateFormat子类getInstance()方法?如果您想使用系统默认值,可以。如果要显式格式化声明,请使用构造函数