การเขียนโปรแกรมไม่ได้เพียงแต่เกี่ยวกับการเขียนคำสั่งให้คอมพิวเตอร์ทำงานเท่านั้น แต่ยังรวมถึงการทำให้คอมพิวเตอร์ทำงานได้มีประสิทธิภาพด้วย นี่คือที่มาของคำสองคำที่สำคัญในโลกของการเขียนโปรแกรม นั่นคือ Concurrency และ Parallelism ซึ่งมาช่วยให้โปรแกรมของเราทำงานได้ฉลาดขึ้นและเร็วขึ้น
ยกตัวอย่างเหมือนคุณกำลังทำการบ้านทั้งขณะที่ฟังเพลง คุณสามารถหยุดการบ้านไปสักครู่เพื่อเปลี่ยนเพลง และกลับมาทำการบ้านต่อ จุดของ Concurrency คือการสลับหน้าที่ไปมา คอมพิวเตอร์ก็ทำงานเช่นนี้ โดยการสลับจากงานหนึ่งไปยังอีกงานหนึ่งอย่างรวดเร็วจนเราคิดว่ามันทำการทำงหานพร้อมกัน แต่จริงๆ แล้วมันเป็นการทำงานต่อเนื่องกันไปมา
Parallelism เหมือนกับการที่คุณและเพื่อนของคุณกำลังทำการบ้านในห้องที่แตกต่างกันในเวลาเดียวกัน ที่นี่ไม่มีการสลับไปมาแต่ทั้งสองกำลังทำงานในปริมาณงานเดียวกันพร้อมๆ กันเลย คอมพิวเตอร์ที่ทำงานแบบ Parallelism ใช้หลายๆ หน่วยประมวลผลที่ทำงานควบคู่ไปกันเพื่อเพิ่มประสิทธิภาพ
การทำงานพร้อมกันและการทำงานแบบขนานช่วยให้โปรแกรมทำงานได้อย่างหลากหลาย และมีประสิทธิภาพ เช่น ในเว็บเบราว์เซอร์ คุณสามารถเปิดหลายแท็บได้ในครั้งเดียว (Concurrency) และทะลวงเว็บหลายแห่งในเวลาเดียวกันโดยที่ไม่กระทบกัน (Parallelism)
สมมติว่าเราต้องการค้นหาคำว่า "EPT" ในเอกสารขนาดใหญ่ เราสามารถแบ่งเอกสารเป็นส่วนๆ และใช้ Concurrency ในการค้นหาส่วนตัวแถวต่อแถว หรือใช้ Parallelism โดยให้หลายๆ คำสั่งค้นหาในเวลาเดียวกันเพื่อเร่งรัดยิ่งขึ้น
# ตัวอย่างการใช้งาน Concurrency ใน Python
import asyncio
async def search_EPT(document_section):
# ฟังก์ชันสำหรับการค้นหาคำว่า EPT
if "EPT" in document_section:
print("Found EPT!")
# ค้นหาในส่วนต่าง ๆ ของเอกสาร
sections = ['Section 1', 'Section 2', 'Section 3']
loop = asyncio.get_event_loop()
tasks = [loop.create_task(search_EPT(section)) for section in sections]
wait_tasks = asyncio.wait(tasks)
loop.run_until_complete(wait_tasks)
loop.close()
# ตัวอย่างการใช้งาน Parallelism ใน Python
from multiprocessing import Pool
def search_EPT(document_section):
# ฟังก์ชันสำหรับการค้นหาคำว่า EPT
if "EPT" in document_section:
return "Found EPT in section!"
# ค้นหาในเอกสารด้วยคำสั่งที่ทำงานพร้อมกัน
sections = ['Section 1', 'Section 2', 'Section 3']
with Pool() as p:
print(p.map(search_EPT, sections))
ทั้ง Concurrency และ Parallelism นั้นมีบทบาทสำคัญในการพัฒนาโปรแกรมที่ทันสมัยและมีประสิทธิภาพ ดังนั้นการเรียนรู้และการนำไปประยุกต์ใช้เป็นทักษะที่สำคัญสำหรับโปรแกรมเมอร์ในยุคนี้
ด้วยความที่ตลาดและโลกเทคโนโลยีที่เปลี่ยนแปลงไปอยู่ตลอดเวลา เอกสารการเรียนที่มีคุณภาพ เช่นที่ EPT มอบให้กับนักเรียน สามารถช่วยให้นักเรียนมีความรอบรู้และเข้าใจในแนวคิดเหล่านี้ได้อย่างลึกซึ้งและพร้อมที่จะนำไปประยุกต์ใช้ในการทำงานจริง
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM