Process vs Threads, Hardware Threads vs Software Threads, මෘදුකාංග Threads, Hyperthreading වර්තමානයේ මෘදුකාංගය හා මෘදුකාංගය තුළ, ඔබ සැබෑ වේලාවක වෙළඳ යන්ත්රය, ක්රීඩා යන්ත්රය හෝ සරල වෙබ් සේවාදායකයක් ගොඩනඟා ගන්නේ නම්, කාර්යයන් සකස් කිරීමේ ආකාරය තේරුම් ගැනීම ප්රදර්ශනීයව ක්රියාකාරීත්වය හා පරිශීලක අත්දැකීම් වැඩි දියුණු කළ හැකිය. ක් රීඩාවට එනවා concurrency threading පසුගිය බ්ලොග් වලදී අපි විමසා බැලුවා විවිධ - ප්රධාන ගොඩනැඟිලි ප්රමාණවත් හා උසස් සමන්විතත්වය.අපි පදනම තැබූ විට, එය ප්රධාන ප්රශ්නය වෙත පිවිසීමට හා ප්රධාන ප්රශ්නය වෙත පිවිසීමට කාලය වේ: ඔබ තවමත් එම පෙර කතා කියවා නොමැති නම්, මම වඩාත් හොඳ සබැඳි සඳහා මුලින්ම ඒවා පරීක්ෂා කිරීමට නිර්දේශ කරමි. ෆ්ලින්ගේ ටැක්සෝනියාව Parallel Programming ආකෘති Thread යනු කුමක්ද සහ එය කරන්නේ කුමක්ද? ෆ්ලින්ගේ ටැක්සෝනියාව ෆ්ලින්ගේ ටැක්සෝනියාව Parallel Programming ආකෘති Parallel Programming ආකෘති Thread යනු කුමක්ද සහ එය කරන්නේ කුමක්ද? UI යාවත්කාලීන කිරීමේදී ගොනු බාගත කිරීම, පරිශීලක ප්රතිපත්තියට පිළිතුරු දෙමින් ප්රතිඵල ගණනය කිරීම, හෝ ඇතුළත් වන ජාල ඉල්ලීම් සකස් කිරීම. , සහ C++ වැනි වැඩසටහන් භාෂා ඔවුන්ගේ ප් රයෝජන ලබා ගැනීමට බලවත් මෙවලම් සපයයි. Threading මගින් වැඩසටහන් එකවර එක් වරකට වැඩකටයුතු කිහිපයක් සිදු කිරීමට ඉඩ ඇත: hardware threads Threading මගින් වැඩසටහන් එකවර එක් වරකට වැඩකටයුතු කිහිපයක් සිදු කිරීමට ඉඩ ඇත: ඔබ multithreading සඳහා නව හෝ ඔබේ මූලස්ථාන ශක්තිමත් කිරීමට අවශ්ය නම්, මෙම කතාව ඔබට ශක්තිමත් ආරම්භයක් ලබා දෙනු ඇත. Highlights: Threads vs processes Hardware threads vs Software Threads Hyperthreading Fork/join threading model What Is a Thread? Thread යනු කුමක්ද? ආරම්භක උපාධිධාරීන් ගැන ඉගෙන ගැනීමට පළමු බාධක වලින් එකක් වන්නේ ඒ පිළිබඳ තේරුම් ගැනීමයි. . difference between a thread and a process A එය ක්රියාත්මක වන ස්වාධීන වැඩසටහනක් වන අතර, එය වෙනත් ක්රියාවලියකින් වෙන් කර ඇති ස්වාධීන මතක ප්රමාණය, ගොනු විස්තරකරණය සහ පද්ධති සම්පත් ඇත. උදාහරණයක් ලෙස, ඔබ බ්රවුසරයක් හෝ තිරගතකමක් විවෘත කරන විට, ඔබ නව ක්රියාවලිය ආරම්භ කරන ලදී. process A , අනෙක් අතට, ක්රියාවලිය තුළ ක්රියාත්මක කිරීම සඳහා කුඩාම ඒකකය වේ.එවැනි ක්රියාවලිය තුළ කිහිපයක් මඟින් ක්රියාත්මක විය හැක, එකවරම ක්රියාත්මක වන අතර එම මතක ප්රමාණය බෙදාහැරෙනු ඇත.මේ බෙදාහැරෙන පරිසරය මඟ අතර වේගවත් සන්නිවේදනය කිරීමට ඉඩ සලසයි, නමුත් දොර විවෘත කරයි සහ නිවැරදිව කළමනාකරණය නොකළොත් thread race conditions synchronization issues අර්ථකථන වශයෙන්, ඔබ අර්ථකථනයක් ලෙස සිතා ගත හැක - ස්වාධීන ක් රියාකාරීත්වය සමග ස්වාධීන ක් රියාකාරීත්වය , සහ නමුත් බෙදා හැරීම එම ක් රියාවලිය තුළ වෙනත් අමුද් රව් ය සමඟ. lightweight process program counter registers stack heap and global memory ප් රචණ්ඩත්වය ගැන කතා කරන විට, එය වෙනස් කිරීමට වැදගත් වේ සහ ඔවුන් දෙදෙනාම "අධිකරණ යන්ත්ර" ලෙස හැඳින්වුවත්, ඔවුන් පරිගණක කට්ටලයේ ඉතා වෙනස් මට්ටම්වල ක් රියා කරයි. hardware threads software threads What is a Hardware Thread? Hardware Thread යනු කුමක්ද? A Execution Stream එකක් එය සැබවින්ම A ස්වයංක්රීයව ක්රමයක් ලබා ගත හැකි, decode කළ හැකි සහ ක්රියාත්මක කළ හැකි කේන්ද්රයක ඇතුළත. hardware thread directly supported by the processor dedicated control unit සම්ප් රදායිකව — වෙනත් වචන වලින් කියනවා නම්, සෑම භෞතික CPU එකකටම එක පාලන යන්ත්රය. multiple sockets (e.g., server motherboards) සහිත පද්ධති වලදී, නමුත් මෙම ආකෘතිය වේගයෙන් වර්ධනය වූ අතර, සහ ආකෘති one processor equaled one hardware thread one hardware thread per socket multi-core multi-threaded වර්තමානයේ CPU වල: ඕනෑම core එකකට අඩුම තරමේ hardware thread එකක් තියනවා. Simultaneous Multithreading (SMT) - ඉන්ට්ලර්ගේ අනුවාදය Hyper-Threading ලෙස හඳුන්වනු ලබන්නේ නම්, එක් කේන්ද් රයක් බොහෝ මෘදුකාංග මෘදුකාංග වලට සහාය ලබා ගත හැකිය. දැන්, එක් පරිශීලකයක් (සොක්ටේට්) කිහිපයක් කොරියක් ඇති විය හැකි අතර, සෑම කොරියක්ම කිහිපයක් හෘදයාබාධයක් ඇති විය හැකිය. සංවේදීතාවයට අමතරව, බොහෝ ඒ නිසා, ඔබ පද්ධති මෙවලම් භාවිතා කරමින් CPU තොරතුරු පරීක්ෂා කරන විට, පෙන්නුම් කරන ලද "සොසොසොසොසොසොසොසොස්" සංඛ්යාව සංකීර්ණ කොරයන් හෝ ස්කූටීන් නොවේ. operating systems report hardware threads or logical cores as “processors.” කොහොමද මම මගේ hardware thread ගණන පරීක්ෂා කරන්නේ? Windows එක Windows එක වින්ඩෝස් හි උපාංගික ආකෘති සංඛ්යාව පරීක්ෂා කිරීමට ක්රම කිහිපයක් ඇත, නමුත් බය වෙන්න එපා, මෙය ඒ "10 ක්රම එය කිරීමට" බ්ලොග් පිටු වලින් එකක් නොවේ. භාවිතය Head to the TAB සහ SELECT . Task Manager Ctrl + Shift + Esc Performance CPU ඔබ දකිනු ඇත සංඛ්යාව ඇතුළත් සංඛ්යාව සහ (එනම්, hardware threads) එය මේ ආකාරයට යමක් පෙනේ: cores logical processors වෙනත් විකල්ප, ඔබ තනියම පර්යේෂණ කිරීමට කැමති නම්: PowerShell: Alternative 1: විකල්පය 1: (Get-WmiObject -Class Win32_Processor).NumberOfLogicalProcessors Command Prompt (requires wmic): Alternative 2: විකල්ප 2: wmic cpu get NumberOfLogicalProcessors,NumberOfCores 2 Linux 2 Linux ඔබ Linux හි ඕනෑම රසයක් භාවිතා කරන්නේ නම්, ඔබේ පද්ධතියගේ සැකසීම සහ උපාංගය ආකෘති සංඛ්යාව කියවීමෙන් පරීක්ෂා කළ හැකිය. සෑම අමුද් රව් යයක් සඳහාම එක් අමුද් රව් යයක් ලබා දෙයි.මේ ගොනුවක එක් අමුද් රව් යයක් මේ ආකාරයට පෙනේ: /proc/cpuinfo ~$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 183 model name : 13th Gen Intel(R) Core(TM) i5-13450HX stepping : 1 microcode : 0xffffffff cpu MHz : 2611.201 cache size : 20480 KB physical id : 0 siblings : 16 core id : 0 cpu cores : 8 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 28 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves avx_vnni vnmi umip waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize flush_l1d arch_capabilities vmx flags : vnmi invvpid ept_x_only ept_ad ept_1gb tsc_offset vtpr ept vpid unrestricted_guest ept_mode_based_exec tsc_scaling usr_wait_pause bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs retbleed eibrs_pbrsb rfds bhi bogomips : 5222.40 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: ... මේ ගැන අවධානය යොමු කළ යුතු කරුණු කිහිපයක්: CPU කේන්ද්ර: මෙම අංකය සැබෑ කේන්ද්ර සංඛ්යාව ප්රදර්ශනය නොකරයි (උදාහරණයක් ලෙස, මගේ Intel i5-13th ජෙනරයේ 10 කේන්ද්රයක් ඇත: 6 P-කූල + 4 E-කූල, නමුත් එය 8 කේන්ද්රයක් පෙන්වයි). සහෝදර සහෝදරියන්: සෝචිත අමුද් රව් ය සංඛ්යාව පිළිබඳව සඳහන් කරයි. Ht සංකේතය (Hyper-Threading සඳහා කෙටි) ඇතිවීම සහතික කරයි SMT සහාය වේ. මෙම නියෝගයට විකල්ප කිහිපයක් ඇත, එය වඩාත් පැහැදිලි ප්රතිඵල ලබා දෙයි: විකල්පය 1: lscpu විකල්පය 1: lscpu මම ඊළඟ ප්රතිඵල ලබා ගැනීමට : lscpu ~$ lscpu | grep -E 'Core|Socket|Thread' Model name: 13th Gen Intel(R) Core(TM) i5-13450HX Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 1 විකල්පය 2: hwloc (lstopo) විකල්පය 2: hwloc (lstopo) ඔබේ පද්ධතියේ CPU ටොපෝලිය පරීක්ෂා කිරීම සඳහා තවත් ප්රයෝජනවත් මෙවලමක් වන්නේ ජනප්රිය Linux උපකරණයකි. , ඔබේ උපාංගය තැපැල් දෙකම command-line හා graphical ප්රදර්ශන සපයයි.It is especially handy for visualizing cores, hardware threads, cache levels, and NUMA nodes. hwloc hwloc දැනටමත් ස්ථාපනය වී තිබේ නම්, ඔබ ඔබේ පද්ධති ආකෘතිය දර්ශනීය සිතියමක් නිර්මාණය කළ හැකිය. නියෝග : lstopo Hyper-Threading යනු කුමක්ද? Hyper-Threading (HT) යනු Intel විසින් සකස් කරන ලද Simultaneous Multithreading (SMT) ක් රමය වන අතර, සෑම ශාරීරික කේන්ද් රයක්ම සැමවිටම දෙපාර්තමේන්තුවක් ක්රියාත්මක කිරීමට ඉඩ සලසයි. වඩා හොඳ CPU භාවිතය I/O-bound හෝ multitasking වැඩපිළිවෙළෙහි වැඩි දියුණු කිරීම් ⚠ නමුත්: එය කාර්ය සාධනය දෙගුණ නොකරයි - සාමාන්ය ප්රතිලාභ 15-30% පමණ වේ. සංකීර්ණ වැඩසටහන සඳහා අවධානය යොමු කිරීම: HT දිනපතා ප්රයෝජනවත් වන අතර (උදාහරණයක් ලෙස, ලැප්ටොප් මත බොහෝ වැඩසටහන් ක්රියාත්මක කිරීම), එය HPC හෝ සමන්විත වැඩ ප්රවාහනවල ප්රතිඵලදායීව බලපෑම් කළ හැකිය.එවැනි නඩත්තු මත විවිධ බරපතල ඉලක්ක ක්රියාත්මක කිරීම ප්රමාණ සීමාව හා වේගවත් කිරීම අඩු කර ගත හැකිය.මේ නිසා බොහෝ HPC මධ්යස්ථාන HT සම්මතයෙන් අක්රීය කර ඇත - පරිස්සමින් ඉලක්ක සැලසුම් SMT පද්ධති මත ප්රධාන වේ. උදාහරණයක් ලෙස – i5–13450HX: 6 P-Cores with HT → 12 අඟල් 4 E-Cores Without HT → 4 Threads ➡️ සම්පූර්ණ = 16 logical threads What is Hyper-Threading? Hyper-Threading (HT) යනු Intel විසින් සකස් කරන ලද Simultaneous Multithreading (SMT) ක් රමය වන අතර, සෑම ශාරීරික කේන්ද් රයක්ම සැමවිටම දෙපාර්තමේන්තුවක් ක්රියාත්මක කිරීමට ඉඩ සලසයි. වඩා හොඳ CPU භාවිතය I/O-bound හෝ multitasking වැඩපිළිවෙළෙහි වැඩි දියුණු කිරීම් ⚠ නමුත්: එය කාර්ය සාධනය දෙගුණ නොකරයි - සාමාන්ය ප්රතිලාභ 15-30% පමණ වේ. Caution for parallel programming: HT දිනපතා multitasking සඳහා ප්රයෝජනවත් වන අතර (උදාහරණයක් ලෙස, ලැප්ටොප් මත බොහෝ වැඩසටහන් ක්රියාත්මක කිරීම), එය එකම කේන්ද් රයේ විවිධ බර අඟල් ක්රියාත්මක කිරීමකට හේතු විය හැකිය වේගවත් වීම - ඒකට හේතුව — පරිස්සම් thread scheduling SMT පද්ධති මත ප්රධාන වේ. negatively affect performance in HPC or parallel workloads resource contention many HPC centers disable HT by default Example — i5–13450HX: 6 P-Cores with HT → 12 අඟල් 4 E-Cores Without HT → 4 Threads ➡️ Total = 16 logical threads Understanding Software Threads: The Foundation Software Threads තේරුම් ගැනීම: පදනම මෘදුකාංග මට්ටමේ පවතින මෘදුකාංග මෘදුකාංග වලට වඩා, මෘදුකාංග මෘදුකාංග එය ක් රියාවලිය තුළ ස්වාධීන ක් රියාවලියකි. that represent independent streams of execution within a process. . programming abstractions මෘදුකාංග අංගය සැබවින්ම ක්රියාවලිය තුළ පවතින සරල ක්රියාවලියක යන්ත්රය වන අතර එය තමන්ගේම ක්රියාවලිය සකසන අතර එකම ලිපි ප්රදේශය බෙදා හදා ගනී. මෘදුකාංග අංගය සැබවින්ම ක්රියාවලිය තුළ පවතින සරල ක්රියාවලියක යන්ත්රය වන අතර එය තමන්ගේම ක්රියාවලිය සකසන අතර එකම ලිපි ප්රදේශය බෙදා හදා ගනී. ඔබ ඔබේ කේතය තුළ මෘදුකාංග අංගයක් නිර්මාණය කරන විට, මෙහෙයුම් පද්ධතිය සහ ක්රියාකාරී කාල සීමාව එය ක්රියාත්මක කිරීමට එක්ව වැඩ කරයි. සැබෑ ක්රියාත්මක කිරීම සඳහා. මෙම මැප්ප කිරීම දෛනිකය සහ සෑම thread ක්රියා කරන විට සහ කොහේද තීරණය කරන thread scheduler මත රඳා පවතී. Hardware තැපැල් Hardware තැපැල් මෘදුකාංග හා මෘදුකාංග ද්රව්ය අතර වෙනස ප්රධාන වේ.එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එම්එ මෘදුකාංගය සහ මෘදුකාංගය අතර වෙනස ප්රධාන වේ.මෘදුකාංගය සහ මෘදුකාංගය අතර වෙනස මෘදුකාංගය සහ මෘදුකාංගය අතර මෘදුකාංගය යනු මෘදුකාංග වැඩසටහන්කරුවන් භාවිතා කරන අමුද්රව්යයි. A single hardware thread can execute multiple software threads over time through context switching, and modern systems often support thousands of software threads running concurrently. The Evolution From Processes to Threads Process වලින් Threads දක්වා සංවර්ධනය ප් රචණ්ඩත්වය සිදුවේ, නමුත් අපි පාපයට එරෙහිව ශුද්ධ විනිශ්චය සහ අපි පුද්ගලිකව අකමැති අයට එරෙහි වන පුරපැම අතර වෙනස අප හඳුනාගත යුතුය, එය උඩඟුකමේ අනිවාර්ය ප් රතිපලයයි (ගීතාවලිය 73). One Execution Stream එක දිගින් දිගටම ක් රියාත්මක වන බෙදාහැරෙන ලිපි ප්රදේශ, ගොනු විස්තරකරුවන් සහ පරිශීලක අංකයන් සමඟ සම්පූර්ණ තනිවීම Inter-Process Communication (IPC) යන්ත් ර හරහා පමණක් සන්නිවේදනය සම්පූර්ණ ක්රියාවලිය දෙගුණ කිරීම නිසා බරපතල සම්පත් overhead Threading මෙම ක්රියාවලිය මධ්යම ආකෘතියේ සීමාවන් විසඳා ගැනීම සඳහා ඉදිරිපත් කරන ලදී.Threading was introduced to address the limitations of this process-centric model by enabling finer-grained concurrence. Threads ප්රධාන වාසි කිහිපයක් ලබා දෙයි: Simplified Data Sharing Unlike processes, threads within the same process . This eliminates the need for complex IPC mechanisms and allows for more efficient communication between concurrent execution units. share the same address space, heap, and global variables සරල දත්ත බෙදාහැරීම Resource Efficiency Creating a thread requires significantly fewer resources than creating a process. , while process creation involves duplicating the entire parent process address space. Thread creation typically requires only 64KB for the thread’s private data area and two system calls සම්පත් ඵලදායීත්වය Enhanced Responsiveness Threads enable patterns that are essential for modern applications. Consider a web browser: one thread handles the user interface, another manages network requests, while others handle rendering and background tasks. This separation ensures that the interface remains responsive even when heavy operations are running. asynchronous behavior වැඩිදුර responsiveness Operating System Level Scheduling Threads still benefit from OS-level scheduling features, including (the ability to interrupt a thread) and fair progress guarantees among threads. This provides the balance between user control and system management. preemption මෙහෙයුම් පද්ධති මට්ටමේ වැඩසටහන Thread Architecture and Memory Model Thread Architecture සහ Memory Model සෑම අංගයක්ම තමන්ගේම පෞද්ගලික ක්රියාත්මක කිරීමේ කොන්දේසි සකස් කරන අතර එම ක්රියාවලිය තුළ අනෙකුත් අංගයන් සමඟ යම් සම්පත් බෙදා හදා ගනී. පෞද්ගලික Thread Resources සෑම thread එකකටම තියෙන්නේ: Thread Control Block (TCB) ඇතුළත් thread ID, program counter, register set, and schedule information Local Variables සහ Function Call Management සඳහා Stack Memory Current Instruction Counter ක්රියාත්මක කරන පරිගණකය Thread Control Block (TCB) යනු මතකය Stack Counter වැඩසටහන බෙදාහැරෙන සම්පත් එක් ක් රියාවලියක සෑම thread එකකටම share: containing the program instructions Code section with global and static variables Data section for dynamically allocated data Heap memory and other system resources File descriptors කේතය කොටස දත්ත අංශය සුපිරි මතකය Descriptor ගොනු මෙම බෙදාහැරෙන මතකය ආකෘතිය ශක්තිමත් හා අභියෝගයක් වන අතර, එය ඵලදායී සන්නිවේදනය ලබා දීමත්, එය දත්ත තරඟය වළක්වා ගැනීමට සහ තැපැල් ආරක්ෂාව සහතික කිරීම සඳහා සැලකිලිමත් සකස් කිරීමේ අවශ්යතාවය ඉදිරිපත් කරයි. මෙම බෙදාහැරෙන මතකය ආකෘතිය ශක්තිමත් හා අභියෝගයක් වන අතර, එය ඵලදායී සන්නිවේදනය ලබා දීමත්, එය දත්ත තරඟය වළක්වා ගැනීමට සහ තැපැල් ආරක්ෂාව සහතික කිරීම සඳහා සැලකිලිමත් සකස් කිරීමේ අවශ්යතාවය ඉදිරිපත් කරයි. The Fork/Join Model: Structured Parallelism The Fork/Join Model: Structured Parallelism ආකෘතිගත කිරීම් fork/join ආකෘතිය ව්යුහය සහිත සංකීර්ණ වැඩසටහන් සඳහා වඩාත් පොදු ආකෘතියයි.This model provides a clean abstraction for dividing work between multiple threads and collecting results.An execution flow of a Fork/Join model looks like this: Sequential Start: ප් රධාන අංගය අඛණ්ඩව ක්රියාත්මක කිරීම ආරම්භ කරයි Fork Phase: Parallel work අවශ් ය නම්, main thread creates (forks) new threads, each starting at a specified function. Parallel Execution: ප්රධාන හා උපත ලද ද්රව්ය දෙකම සමස්තව ක්රියාත්මක කර ඇති අතර, සමහර විට විවිධ උපාංගික ද්රව්ය මත ක්රියාත්මක වේ Join Phase: The main thread waits for all spawned threads to complete before continuing ප් රතිඵලයක් Sequential Continuation: Execution resumes sequentially with results from parallel work - සකසනීය දිගුකාලීන කිරීම සංකීර්ණ ආරම්භය Fork වේලාව සංකීර්ණ ක් රියාවලිය : එක්වීමේ පියවර : දිගුකාලීන වැඩසටහන : What’s Next? ඊළඟ මොනවද? අපි දැන් මෙම multithreading series තුන්වන කොටසේ අවසානය ළඟා වී ඇත. මෙතෙක් දක්වා, අපි thread සහ ක්රියාවලිය පිළිබඳ මූලික සංකල්ප ගබඩා කර ඇති අතර, ඔබට ඉදිකිරීමට ශක්තිමත් පදනමක් ලබා දෙනු ඇත. ඊළඟ කොටසේ, අපි දර්ශනයෙන් ක්රියාකාරීත්වයට මාරු කරමු සහ ක්රියාකාරීත්වයේ threading ලෝකය පරීක්ෂා කරන්න. සහ , එහිදී අපි සැබෑ කේතය ලිවීමට, ප්රතිඵල විශ්ලේෂණය කිරීමට සහ මෙම පුස්තකාලයන් ජීවත් වන ආකාරය තේරුම් ගනු ඇත. POSIX threads (pthreads) C++ std::thread Suggested Reads යෝජනා කියවීම [1] ප් රතිඵල Multithreaded Computing Architecture: A Summary of the State of the ART - පරිගණක ආකෘතිය 2 ) Distributed Computing: Principles, Algorithms, and Systems — Kshemkalyani සහ Singhal (uic.edu)