නිශ්චිත ගැටලුවේ සමහර අංග නොසලකා හරිනු ඇතැයි හෝ වැරදි නිගමනවලට එළඹීමට මා සිතන නිසා මම මගේ අදහස් පිළිතුරක් ලෙස පුළුල් කරමි.
මෙම අවස්ථාවෙහිදී, ප්රතික්රියාකාරකය කළ යුතුද යන ප්රශ්නය නොමේරූ ය (එයට නිශ්චිත ආකාරයකින් 'ඔව්' යන්නෙන් පිළිතුරු ලැබෙනු ඇතත්).
මෙහි ඇති ප්රධාන ගැටළුව නම් (සමහර පිළිතුරු වල සඳහන් කර ඇති පරිදි) ඔබ උපුටා දක්වන අදහස් තදින්ම පෙන්නුම් කරන්නේ කේතයට තරඟ කොන්දේසි හෝ මෙහි සාකච්ඡා කර ඇති වෙනත් සමගාමී / සමමුහුර්තකරණ ගැටලු ඇති බවයි. හේතු කිහිපයක් නිසා මේවා විශේෂයෙන් දුෂ්කර ගැටළු වේ. පළමුවෙන්ම, ඔබ සොයාගෙන ඇති පරිදි, සම්බන්ධයක් නැති බව පෙනෙන්නට තිබීම ගැටළුව අවුලුවාලිය හැකිය (වෙනත් දෝෂ වලටද මෙම බලපෑම ඇති කළ හැකි නමුත් සමගාමී දෝෂ සෑම විටම පාහේ සිදු වේ.) දෙවනුව, ඒවා හඳුනා ගැනීම ඉතා අසීරු ය: දෝෂය බොහෝ විට පවතින ස්ථානයක පෙනී යයි වේලාවෙන් හෝ කේතයෙන් දුරස්ථව ඇති අතර, එය හඳුනා ගැනීමට ඔබ කරන ඕනෑම දෙයක් එය ඉවතට යාමට හේතු විය හැක ( හයිසන්බග්ස්). තෙවනුව, සමගාමී මුදල් දෝෂ පරීක්ෂා කිරීමේදී ඉතා අපහසු වේ. අර්ධ වශයෙන්, එය සංයුක්ත පිපිරීම නිසා ය: එය අනුක්රමික කේතයට ප්රමාණවත් තරම් නරක ය, නමුත් සමගාමී ක්රියාත්මක කිරීමේ අන්තර් සම්බන්ධතා එකතු කිරීමෙන් එය අනුක්රමික ගැටළුව සැසඳීමේදී වැදගත් නොවන තැනට ඇද දමයි. ඊට අමතරව, හොඳ පරීක්ෂණ නඩුවක් පවා ඉඳහිට පමණක් ගැටලුව අවුලුවනු ඇත - නැන්සි ලෙව්සන් ගණනය කළේ තෙරැක් 25 හි ඇති මාරාන්තික දෝෂ වලින් එකක් බවයිලකුණු 350 ක් පමණ සිදුවී ඇත, නමුත් දෝෂය යනු කුමක්දැයි ඔබ නොදන්නේ නම් හෝ එකක් තිබේ නම්, පුනරාවර්තන කීයක් test ලදායී පරීක්ෂණයක් කරයිදැයි ඔබ නොදනී. මීට අමතරව, මෙම පරිමාණයෙන් ස්වයංක්රීය පරීක්ෂණ පමණක් කළ හැකි අතර, පරීක්ෂණ රියදුරු සියුම් කාල සීමාවන් පැනවීමට ඉඩ ඇති අතර එමඟින් එය කිසි විටෙකත් දෝෂය අවුලුවන්නේ නැත (හයිසන්බග්ස් නැවත).
POSIX pthreads භාවිතා කරන කේත සඳහා හෙල්ග්රින්ඩ් වැනි සමහර පරිසරවල සමගාමී මුදල් පරික්ෂා කිරීම සඳහා මෙවලම් කිහිපයක් ඇත , නමුත් මෙහි විශේෂතා අපි නොදනිමු. ඔබේ පරිසරය සඳහා සුදුසු මෙවලම් තිබේ නම්, පරීක්ෂණ ස්ථිතික විශ්ලේෂණයන් සමඟ අතිරේක කළ යුතුය (නැතහොත් එය වෙනත් මාර්ගයක්ද?).
, සංග්රාහකයන් (සහ පවා සකසන, ක්රියාත්මක වීමේදී) ඉතා ප්රති-ඉවෙන් දුෂ්කරතාවය එකතු කිරීමට බොහෝ විට සමහර විට එහි නූල්-ආරක්ෂාව ගැන තර්ක කරන්න බව ක්රම කේතය ප්රතිසංවිධානය කිරීම නිදහස් (සමහර විට හොඳම ප්රසිද්ධ නඩුව වන්නේ ද්විත්ව පරීක්ෂා ලොක් අයිඩියම්, සමහර පරිසරයන් (ජාවා, සී ++ ...) එය සුවපත් කිරීම සඳහා වෙනස් කර ඇත.)
මෙම කේතයට සියලු රෝග ලක්ෂණ ඇති කරන එක් සරල ගැටළුවක් තිබිය හැකි නමුත්, නව අංග එකතු කිරීම සඳහා ඔබේ සැලසුම් ගෙන ඒමට හැකි පද්ධතිමය ගැටළුවක් ඔබට ඇති බව පෙනේ. ඔබේ අතේ බරපතල ගැටළුවක් ඇති විය හැකි බව මම ඔබට ඒත්තු ගැන්වූවා යැයි මම විශ්වාස කරමි, සමහර විට ඔබේ නිෂ්පාදනයට පැවැත්මේ තර්ජනයක් විය හැකි අතර, කළ යුතු පළමු දෙය නම් සිදුවන්නේ කුමක්ද යන්න සොයා ගැනීමයි. මෙය සමගාමී මුදල් ගැටළු හෙළි කරන්නේ නම්, ඔබ වඩාත් පොදු ප්රතිචක්රීකරණය කළ යුතුද යන ප්රශ්නය ඇසීමට පෙර සහ ඔබ තවත් විශේෂාංග එකතු කිරීමට උත්සාහ කිරීමට පෙර, පළමුව ඒවා නිවැරදි කරන ලෙස මම තරයේ ඔබට උපදෙස් දෙමි.