সিম্পলডিটফর্ম্যাট এর জাভাদোক বলে যে সিম্পলডেটফর্ম্যাটটি সিঙ্ক্রোনাইজ করা হয়নি।
"তারিখের ফর্ম্যাটগুলি সিঙ্ক্রোনাইজ করা হয় না each প্রতিটি থ্রেডের জন্য পৃথক ফর্ম্যাট উদাহরণ তৈরি করার পরামর্শ দেওয়া হয় multiple
তবে একাধিক থ্রেডযুক্ত পরিবেশে সিম্পলডেট ফরমেটের উদাহরণ ব্যবহার করার জন্য সর্বোত্তম পন্থাটি কী। এখানে আমি কয়েকটি বিকল্পের কথা ভেবেছি, আমি অতীতে 1 এবং 2 বিকল্পগুলি ব্যবহার করেছি তবে এর চেয়ে আরও ভাল বিকল্প আছে কি না বা এই বিকল্পগুলির মধ্যে কোনটি সেরা অভিনয় এবং সম্মতি প্রদান করবে তা জানতে আগ্রহী।
বিকল্প 1: যখন প্রয়োজন হয় স্থানীয় দৃষ্টান্ত তৈরি করুন
public String formatDate(Date d) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(d);
}
বিকল্প 2: ক্লাস ভেরিয়েবল হিসাবে সিম্পলডেট ফরমেটের একটি উদাহরণ তৈরি করুন তবে এটিতে অ্যাক্সেসকে সিঙ্ক্রোনাইজ করুন।
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public String formatDate(Date d) {
synchronized(sdf) {
return sdf.format(d);
}
}
অপশন 3: প্রতিটি থ্রেডের জন্য সিম্পলডেট ফরমেটের ভিন্ন উদাহরণ সংরক্ষণ করার জন্য একটি থ্রেডলোকাল তৈরি করুন।
private ThreadLocal<SimpleDateFormat> tl = new ThreadLocal<SimpleDateFormat>();
public String formatDate(Date d) {
SimpleDateFormat sdf = tl.get();
if(sdf == null) {
sdf = new SimpleDateFormat("yyyy-MM-hh");
tl.set(sdf);
}
return sdf.format(d);
}