1. أسباب مشاكل سلامة الخيط
تحدث مشكلات سلامة الخيط بسبب المتغيرات العالمية والمتغيرات الثابتة.
2. قضايا سلامة الموضوع
SimpledAteFormate SDF = جديد simpledateFormat () ؛ استخدام sdf.parse (dateSt) ؛ sdf.format (التاريخ) ؛ هناك إشارة إلى كائن Caleadar في sdf.parse (datest) ؛ في الكود المصدر ، calendar.clear () ؛ و calendar.getTime () ؛ // احصل على وقت التقويم
إذا كان موضوع A SDF.Parse () ولم ينفذ بعد Calendar.getTime () بعد Calendar.clear () ، فإن الموضوع B يستدعي sdf.parse () مرة أخرى ، ثم يقوم الموضوع B بتنفيذ طريقة sdf.clear () ، والتي تسبب بيانات تقويم الموضوع A ؛
يستخدم ThreadLocal مساحة لتبادل الوقت ، ويستخدم المتزامن الوقت لتبادل مساحة
استخدم ThreadLocal لحل سلامة الموضوع:
الفئة العامة threadlocaldateutil {private static final string date_format = "Yyyy-MM-DD HH: mm: ss" ؛ private static threadlocal <DateFormat> threadlocal = new threadlocal <dateFormat> () ؛ public static dateFormat getDateFormat () {dateFormat df = threadlocal.get () ؛ if (df == null) {df = new SimplEdateFormat (date_format) ؛ threadlocal.set (df) ؛ } إرجاع df ؛ } تنسيق السلسلة الثابتة العامة (تاريخ التاريخ) يلقي ParseException {return getDateFormat (). format (Date) ؛ } parse static date parse (String strdate) يلقي ParseException {return getDateFormat (). parse (strdate) ؛ }}باستخدام الحل المتزامن:
الفئة العامة datesyncutil {private static simpledateformat sdf = new SimpleDateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ تنسيق السلسلة الثابتة العامة (تاريخ التاريخ) يلقي ParseException {Synchronized (SDF) {return sdf.format (date) ؛ }} تحليل التاريخ الثابت العام (String strdate) يلقي ParseException {Synchronized (SDF) {return sdf.parse (strdate) ؛ }}}شكرًا لك على قراءة هذا المقال ، آمل أن يساعدك. شكرا لدعمكم لهذا الموقع!