ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-28, Tuesday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

Python හි Multiprocessing vs Threading: කවදා කුමන එක භාවිතා කරන්න?

Python හි Multiprocessing vs Threading: කවදා කුමන එක භාවිතා කරන්න?

Python භාෂාවේ වැඩ කරන ඔබට, වැඩක් මන්දගාමී යැයි හැමවිටම අහන්න ඇති — CPU භාවිතය අඩුයි, නෙට්වර්ක් ප්‍රතිචාරයක් බලා සිටිනවා වගේ. මේ වගේ අවස්ථාවලදී ප්‍රධාන හේතුව බොහෝ විට සමකාලීන (concurrency) ආකාරය තෝරා ගැනීමේ වැරදි වේ.

Python හි threading සහ multiprocessing යන දෙකම එකම ගමනේ ව්‍යාපාරිකයෝ, නමුත් ඒවායේ මූලික වෙනස්කම GIL (Global Interpreter Lock) මගින් තීරණය වේ. Thread එකක් තුළ එකම Python interpreter එකේ GIL එකක් සෑම වෙලාවකම එක ත්‍රෙඩ් පමණක් bytecode ක්‍රියාත්මක වීමට ඉඩ දෙයි. එමනිසා threading එක I/O‑බැඳි (network, file) වැඩ වලට හොඳයි, CPU‑බැඳි ගණනයට නොහැක. Multiprocessing එකත් එක්ක, එක් එක් process එකට තමන්ගේ interpreter, GIL, memory space තියෙන නිසා CPU core ගණනක් පුරා සත්‍ය parallelism ලැබේ.

ඇයි මෙය වැදගත්ද? ඔබේ යෙදුම 1x වේගයෙන් පදනම් වේ නම්, multiprocessing භාවිතයෙන් 8‑CPU core මැෂින් එකේ 8x වේගයට පත් කරගත හැක. එම නිසා කුමන අවස්ථාවේ කුමන ආකාරය තෝරන්නැයි හොඳින් හඳුනා ගැනීම ඉතාමත් ප්‍රයෝජනවත්.

Threading භාවිත කළ යුතු අවස්ථා – “Waiting” වැඩ

  • Web scraping – එකවර බොහෝ වෙබ් පිටු ලබා ගැනීම
  • Network server – එකම socket එකේ සමකාලීන ඉල්ලීම් පාලනය
  • File I/O – විශාල ගොනු කියවීම/ලියීම
  • API calls – බාහිර සේවාවන්ගෙන් ප්‍රතිචාර බලා සිටීම

මෙම අවස්ථා වලදී GIL එක thread එක I/O‑බ්ලොක් වීමේදී නිදහස් වේ, එමනිසා අනෙක් thread ගණනක් ක්‍රියාත්මක විය හැක.

Multiprocessing භාවිත කළ යුතු අවස්ථා – “Working” වැඩ

  • දත්ත විශ්ලේෂණ – ලක්ෂ ගණනක් සංඛ්‍යාත ගණනය
  • Machine learning – මොඩල පුහුණුවීම
  • රූප/වීඩියෝ සැකසීම – එකවර බොහෝ ගොනු පිරික්සුම
  • ගණිතමය සමාකරණ – තීව්‍ර matrix ගණනය

CPU‑බැඳි කාර්යයන්හි threading එක GIL නිසා ප්‍රතිඵලයක් නොදෙයි, එබැවින් multiprocessing භාවිතයෙන් සත්‍ය parallelism ලැබේ.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ තාක්ෂණ උපාධි ශිෂ්‍යයන්, ස්ථාපිත සංවර්ධකයන්, ව්‍යාපාරිකයින් සියලුදෙනාටම මේ දැනුම වැදගත්. University පරිසරයේ data‑science වැඩපිළිවෙළ, ග්‍රාමීය වෙළඳපොළේ API‑කේන්ද්‍රිත සේවා, හෝ රූප සැකසීමේ mobile app එකක් නිර්මාණය කරනවා නම්, threading vs multiprocessing තේරීම කාලය, සම්පත්, වියදම ඉතිරි කරයි. කෝඩ් ලේඛනයේ performance bottleneck හඳුනා ගන්නා විට, සරල rule එක – “waiting නම් thread, working නම් process” – අනුගමනය කිරීමෙන් ඉක්මනින් ඉලක්කයට ළඟා විය හැක.

අදම ඔබේ Python script එකේ GIL‑බැඳි සීමාවන් අවලංගු කර, multiprocessing හෝ threading හොඳින් තෝරා, වැඩේ වේගවත් කරගන්න.

💡 ඔබේ Python වැඩකටයුතු තවත් වේගවත් කරන්න, අදම තේරීම කරන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Python #multiprocessing #threading #performance #developers