સમાંતર પ્રોગ્રામમાં સબટાસ્ક (પેટાકાર્ય)ને ઘણી વાર થ્રેડ્સ તરીકે ઓળખવામાં આવે છે. કેટલાક સમાંતર કમ્પ્યુટર આર્કિટેક્ચર નાના, હળવા વજનના થ્રેડ્સના સ્વરૂપનો ઉપયોગ કરે છે જે ફાઇબર તરીકે ઓળખાય છે, જ્યારે અન્ય વધુ મોટા વર્ઝન પ્રોસેસ તરીકે ઓળખાય છે. જોકે “થ્રેડ્સ” સામાન્ય રીતે સબટાસ્કના જેનરિક (સામાન્ય) અર્થ તરીકે વાપરવામાં આવે છે. થ્રેડ્સમાં ઘણી વાર કેટલાક વેરિયેબલને અપડેટ કરવાની જરૂર પડશે જેને તેમની વચ્ચે હિસ્સેદારી કરવામાં આવે છે. બે પ્રોગ્રામ્સ વચ્ચેની સૂચના અન્ય ક્રમમાં ગુંથાયેલ હોઇ શકે છે. ઉદાહરણ તરીકે નીચેના પ્રોગ્રામને ધ્યાનમાં લોઃ

જો સૂચના 1Bને 1A અને 3A વચ્ચે લાગુ પાડવામાં આવે અને જો સૂચના 1A ને 1B અને 3B વચ્ચે લાગુ પાડવામાં આવે તો પ્રોગ્રામ સાચા ડેટા રજૂ કરશે. તેને રેસ કંડિશન (શરત) તરીકે ઓળખવામાં આવે છે. પ્રોગ્રામરે મ્યુચ્યુઅલ એક્સક્લુઝન પૂરું પાડવા માટે લોકનો ફરજિયાત ઉપયોગ કરવો પડે. લોક એ પ્રોગ્રામિંગ લેંગ્વેજ રચના છે જે એક થ્રેડને વેરિયેબલનું નિયંત્રણ મેળવવા અને જ્યાં સુધી તે વેરિયેબલ ખોલવામાં ન આવે ત્યાં સુધી બીજા થ્રેડને તેને વાંચતા કે લખતા અટકાવે છે. લોક ધરાવતું થ્રેડ તેનું ક્રિટિકલ સેક્સન (પ્રોગ્રામનો હિસ્સો જેમાં કેટલાક વેરિયેબલ માટે સંપૂર્ણ એક્સેસની જરૂર પડે છે) લાગુ પાડવા અને અને તે પૂર્ણ થઇ જાય ત્યારે ડેટાને મુક્ત કરવા માટે સ્વતંત્ર છે. તેથી ખરા પ્રોગ્રામ અમલીકરણની ખાતરી આપવા માટે ઉપરના પ્રોગ્રામને લોકના ઉપયોગ માટે ફરી લખી શકાય છે:

એક થ્રેડ સફળ રીતે વેરિયેબલ Vને લોક કરશે જ્યારે બીજું થ્રેડ લોક્ડ આઉટ થશે. તેથી vને જ્યાં સુધી અનલોક (ખોલવામાં) કરવામાં ન આવે ત્યાં સુધી આગળ નહીં વધી શકે. તેના કારણે પ્રોગ્રામ યોગ્ય રીતે લાગુ થવાની ખાતરી મળે છે. યોગ્ય પ્રોગ્રામ અમલીકરણ માટે લોક જરૂરી છે, પરંતુ તેનાથી પ્રોગ્રામની ઝડપમાં ઘણો ઘટાડો થઇ શકે છે. 

નોન-એટોમિક લોક્સનો ઉપયોગ કરીને એકથી વધુ વેરિયેબલને લોક કરવાથી પ્રોગ્રામ ડેડલોકની સંભાવના રજૂ થાય છે. એટોમિક લોકમાં એક સાથે એકથી વધુ વેરિયેબલને લોક કરવામાં આવે છે. તે તેમાના તમામને લોક ન કરી શકે તો તે તેમાંથી કોઇને લોક કરી શકશે નહીં. જો બે થ્રેડને નોન એટોમિક લોકનો ઉપયોગ કરીને સમાન બે વેરિયેબલ્સને લોક કરવાની જરૂર પડે તો, શક્ય છે કે એક થ્રેડ તેમાંના એકને લોક કરશે અને બીજું થ્રેડ બીજા વેરિયેબલને લોક કરશે. આવા કિસ્સામાં કોઇ થ્રેડ સંપૂર્ણ થઇ શકે નહીં અને પરિણામે ડેડલોક સર્જાશે.

ઘણા સમાંતર પ્રોગ્રામમાં સબટાસ્ક સિન્ક્રોનાઇઝેશનમાં કામ કરે તેવી જરૂરિયાત પેદા થાય છે. તેના માટે બેરિયરનો ઉપયોગ કરવો પડે છે. બેરિયર સામાન્ય રીતે સોફ્ટવેર લોકનો ઉપયોગ કરીને લાગુ કરવામાં આવે છે. લોક ફ્રી અને વેઇટ ફ્રી એલ્ગોરિધમ્સ તરીકે ઓળખાતો એલ્ગોરિધમ્સનો એક પ્રકાર સંયુક્ત રીતે લોક્સ અને વેરિયેબલ્સનો ઉપયોગ ટાળે છે. જોકે, આ વલણ સામાન્ય રીતે લાગુ પાડવું મુશ્કેલ છે અને યોગ્ય રીતે ડિઝાઇન કરવામાં આવેલા ડેટા માળખાની જરૂર પડે છે. 

તમામ સમાંતર પ્રક્રિયાથી ગતિમાં વધારો થતો નથી. સામાન્ય રીતે એક કામ વધુને વધુ થ્રેડમાં વિભાજિત કરવામાં આવે ત્યારે આ થ્રેડ તેમના સમયનો વધુને વધુ હિસ્સો એક બીજા સાથે સંપર્ક સાધવામાં ખર્ચે છે. અંતે કમ્યુનિકેશનને ઓવરહેડ કૂટપ્રશ્ન ઉકેલવા માટે ખર્ચાયેલા સમય પર પ્રભાવિત થાય છે અને વધુ સમાંતરણથી (જેમાં કામના બોજને વધુને વધુ થ્રેડમાં વિભાજિત કરવામાં આવે છે) કામ પૂર્ણ કરવા માટે લાગતો સમય ઘટવાના બદલે વધે છે. તેને સમાંતર સ્લોડાઉન તરીકે ઓળખવામાં આવે છે. 

પૃષ્ઠભૂમિ
સિમેટ્રિક મલ્ટિપ્રોસેસિંગ
રેસ શરતો, મ્યુચ્યુઅલ એક્સક્લુઝન, સિન્ક્રોનાઇઝેશન અને સમાંતર ગતિરોધ
બિટ-લેવલ સમાંતરણ