‫ยินดีต้อนรับกลับ.
‫ในวิดีโอนี้ เราจะพิจารณากลุ่มภัยคุกคาม
‫ดังนั้น เราจะสร้างหลายเธรดและดูว่าเกิดอะไรขึ้น
‫ดังนั้น ไปข้างหน้าอย่างง่าย ๆ เพื่อสร้างเธรดพื้นฐาน และฉันจะกำจัดสิ่งที่แหล่งที่มาที่สมบูรณ์นี้
‫ดังนั้นเราจึงอยู่ในหัวข้อทั่วไปที่นี่
‫นั่นคือเธรดทั่วไปที่เราใช้จนถึงตอนนี้
‫ตัวอย่างเช่นที่นี่เรารอ 1/2 และมีหมายเลขเธรดและเพื่อเริ่มต้นแน่นอนว่าเราต้องเรียกวิธีการเริ่มต้นที่นี่ต่อท้าย
‫ตอนนี้นี่เป็นเพียงการตั้งกระทู้ และกำลังจะเริ่มต้นขึ้น
‫ไม่มีอะไรใหม่ที่นี่
‫เราเคยทำมาแล้วหลายครั้งที่นั่น
‫ความแตกต่างเพียงอย่างเดียวคือตอนนี้ฉันต้องการใช้สิ่งที่เรียกว่า
‫thread pool แต่ก่อนที่ฉันจะทำอย่างนั้น ฉันจะใช้ตัวเลขที่นับได้ทั้งสองอย่างนั้น และฉันจะเรียกใช้ช่วงจากศูนย์
‫สมมติว่าตอนนี้มีรายการ 100 รายการ และสำหรับแต่ละรายการ ผมอยากจะทำอะไรบางอย่าง
‫ดังนั้นฉันจะบอกว่าเพียงแค่เรียกใช้รหัสเฉพาะ
‫ดังนั้นนี่เป็นเพียงโค้ดบรรทัดเดียวที่สวยมาก
‫และในนั้นฉันต้องการสร้างเธรด
‫สิ่งที่จะทำคือนี่ที่ฉันนับได้หรือที่นับได้นี้ ที่จริงแล้ว มันจะสร้างหลายเธรด
‫และจะสร้าง 100 เธรด
‫ดังนั้นฉันจะใช้ลิงค์ที่นี่
‫ดังนั้นการใช้การเชื่อมโยงระบบเพื่อใช้การนับและควรเรียกว่าช่วงที่มี E ต่อท้าย
‫ดังนั้นเราจึงมี
‫ที่จะทำก็คือสร้าง 100 เธรดและเราจะเห็นเธรดทั้งหมดบนคอนโซล
‫มาเริ่มกันเลยดีกว่า
‫และเราอยู่ที่นั่น
‫และอย่างที่คุณเห็น มันเริ่มต้นเธรดและสิ้นสุดเธรด
‫และ 102 เป็นเธรดสุดท้าย
‫และอย่างที่คุณเห็น มันเริ่มต้นด้วยสาม
‫ดังนั้นมันจะเริ่มจากสาม หก ห้า และอื่นๆ
‫ดังนั้น ลำดับอย่างที่คุณเห็น จึงแตกต่างอย่างมากจากที่เราคาดไว้
‫ดังนั้นเธรด พวกเขามี ID ที่แตกต่างจากลำดับที่เราคาดหวังให้เป็น แต่จากนั้นก็เริ่มต้นและสิ้นสุดและอาจเร็วเกินไปเล็กน้อย
‫มาสร้างเธรดกันอีกหน่อย
‫สมมติว่ามีเธรด 1,000 เธรด และอย่างที่คุณเห็น มันสร้างเธรดจำนวนมาก แต่เธรดจะสิ้นสุดก่อนที่จะเริ่มเธรดอื่น
‫ดังนั้นการนับจำนวนนี้จึงเริ่มต้นหรือสร้างพวกเขาให้เร็วที่สุดเท่าที่จะทำได้ เร็วที่สุดเท่าที่จะทำได้
‫แต่อย่างที่คุณเห็น มันต้องใช้เวลาสักหน่อย
‫สมมติว่าประมาณ 100 มิลลิวินาทีหรือประมาณนั้นเพื่อสร้างเธรดที่เราเป็น มันสร้างมันขึ้นมาและจากนั้นก็เริ่มทำให้เสร็จ
‫ดังนั้นหลังจาก 1/2 มันสร้างหกเธรดเท่านั้นจากนั้นจึงเธรดที่ห้า
‫ดังนั้นหนึ่งในคนแรกก็จบลง
‫อย่างที่คุณเห็น มันสร้างเธรดเหล่านั้น และนั่นไม่ได้มีประสิทธิภาพมากนัก เพราะเราไม่สามารถควบคุมเธรดเหล่านั้น
‫เราไม่สามารถควบคุมจำนวนเธรดนี้ได้
‫และนั่นเป็นส่วนสำคัญของเธรดที่คุณต้องระมัดระวังอย่างมากและแม่นยำมากเมื่อทำงานกับเธรด
‫คุณจำเป็นต้องรู้ว่าคุณต้องการทำอะไรกับเธรดนั้นและเหตุใดจึงมีเธรดนั้นและโดยทั่วไปจะทำงานกับทุกสิ่งที่อยู่ในเธรดได้อย่างไร
‫นั่นเป็นเพียงตัวอย่างหนึ่งของเธรด วิธีที่คุณสามารถสร้างหลาย ๆ เธรด และมันเพิ่งสร้าง 1,000 เธรดเช่นนั้น
‫และตอนนี้ มาดูกลุ่มของเธรดกัน เนื่องจากเธรดพูลเป็นแนวทางที่แตกต่างกันเล็กน้อยในการใช้เธรด
‫และมีความปลอดภัยมากกว่าเล็กน้อย สมมติว่า เพราะพวกเขาไม่ได้สร้าง 1,000 เธรดที่ไม่จำเป็น
‫มีเฉพาะเธรดที่จำเป็นเท่านั้น
‫มาสร้างเธรดพูลที่นี่และจัดคิวรายการงานของผู้ใช้วิธี Q A เพื่อดำเนินการ
‫เมธอดนี้ทำงานเมื่อเธรดพูลเธรดพร้อมใช้งาน ดังนั้นหากพร้อมใช้งาน การดำเนินการนี้จะถูกดำเนินการและต้องมีอ็อบเจ็กต์ที่นี่
‫จึงมีสองคนที่แตกต่างกันที่นี่
‫คุณเห็นคอลแบ็กและออบเจกต์ และฉันจะให้ออบเจกต์นั้น
‫แค่จะเรียกมันว่าไม่มีอะไรพิเศษที่นี่และสิ่งที่ฉันจะดำเนินการในเธรดพูล
‫ดังนั้นฉันจะบอกว่าให้ ID ของเธรดหรือหมายเลขเธรดกับฉันและสมมติว่ามันเริ่มต้นเมื่อใดและสิ้นสุดเมื่อใด
‫นั่นคือเกือบทุกอย่างที่ฉันอยากทำกับกลุ่มเธรดนี้
‫และอย่างที่คุณเห็นในที่นี้ เราไม่ได้สร้างโดยเฉพาะ เราไม่ได้สร้างเธรดในนั้น
‫แต่กลุ่มเธรดจะทำเพื่อเรา
‫จึงมีงานมากมายที่ต้องทำ เช่น 1,000 เธรดที่ต้องจัดการ
‫และอย่างที่คุณเห็น มันสร้างเฉพาะจำนวนเธรดเท่านั้น
‫และอย่างที่คุณเห็น มันเริ่มต้นและสิ้นสุดเธรดมากหรือน้อยในเวลาเดียวกัน
‫และคุณสามารถเห็นได้ว่าฉันมีหลายคอร์ใน CPU ของฉันที่นี่ เพราะมันสามารถทำงานได้กับจำนวนเธรดที่เจาะจงในเวลาเดียวกันเท่านั้น
‫ดังนั้นเธรดพูลจะจัดการสิ่งต่าง ๆ ได้ราบรื่นยิ่งขึ้นอย่างที่คุณเห็น
‫แต่แน่นอนว่าต้องใช้เวลามากในการผ่าน 1,000 เธรดเหล่านั้นทั้งหมด
‫แต่อย่างที่ฉันบอกไปว่า ถ้าคุณใช้การคุกคาม คุณต้องควบคุมมัน
‫ดังนั้นอย่าใช้การคุกคามแบบสุ่ม
‫สิ่งสำคัญที่สุดที่คุณจะใช้การคุกคามคือเมื่อคุณทำบางสิ่งในเบื้องหลังและคุณทำบางสิ่งในเบื้องหน้า
‫ดังนั้นในเบื้องหน้ามักจะคล้ายกับ UI
‫ดังนั้นเมื่อคุณใช้ WPF หรือถ้าคุณใช้แอปกับ Xamarin หรือสร้างแอปด้วย Xamarin ทุกสิ่งทุกอย่างที่เกิดขึ้นในส่วนหน้า
‫ดังนั้นใน UI จะทำโดยเธรดหลักแล้วหรือโดยเธรด UI แล้วบางอย่างเช่นการดาวน์โหลดวิดีโอ หรือดาวน์โหลดข้อมูลโดยทั่วไปจากอินเทอร์เน็ตหรือเข้าถึงข้อมูลจากฮาร์ดไดรฟ์หรือจากการ์ด
‫SD หรืออะไรก็ตาม
‫อาจใช้เวลาสักครู่
‫แม้จะเป็นเพียงเสี้ยววินาทีหรือไม่ใช่สองสามวินาที แต่หลายมิลลิวินาที นั่นก็เป็นสิ่งที่ควรทำในเบื้องหลังอยู่แล้ว
‫เพราะไม่เช่นนั้น UI ของคุณจะถูกระงับเพราะว่ายังไม่พร้อมจะทำสิ่งใดเพราะเธรดนั้นหมด
‫ไม่ว่าง.
‫ไม่เป็นไร.
‫นั่นคือการสร้างพูลเธรด
‫และถ้าคุณมีสิ่งที่ต้องทำมากมาย คุณสามารถใช้เธรดพูลได้
‫ดังนั้นจึงมีหลายสิ่งที่ควรพิจารณาเมื่อใช้กลุ่มภัยคุกคาม
‫ดังนั้น โดยทั่วไปแล้ว กลุ่มภัยคุกคามจะมีไว้เพื่อเรียกใช้งานเฉพาะหรือทำงานหรือไอเท็มงานเฉพาะ และพวกเขาจะรอจนกว่าเธรดถัดไปจะพร้อมหรือเสร็จหนึ่งเธรดก่อนที่จะเริ่มการคุกคามถัดไป
‫หรือก่อนที่จะเริ่มด้วยไอเท็มงานถัดไป .
‫นั่นคือข้อดีของกลุ่มภัยคุกคามที่ไม่มีเวลาว่างหรือเวลานอนโดยที่ไม่มีอะไรเกิดขึ้น
‫ค่อนข้างมากเพราะอาจมีสถานการณ์ที่ไม่ต้องทำอะไรกับ CPU ของคุณหรือโดยง่าย
‫และนั่นก็ไม่เป็นไรเพราะไม่เช่นนั้น CPU จะค่อนข้างหนักหากต้องทำงานตลอดเวลาและทำสิ่งต่างๆ
‫ตลอดเวลาหรือทำงานหนักมาก
‫แต่โดยทั่วไป กลุ่มภัยคุกคามนี้ พูดง่ายๆ ว่า โอเค ถ้าไม่มีอะไรหรือถ้ามีพื้นที่เพียงพอสำหรับฉันที่จะเรียกใช้เธรดหรือสร้างเธรดใหม่
‫ฉันจะทำเช่นนั้นและฉันจะดำเนินการกับสิ่งที่ ต้องทำ
‫อย่างไรก็ตาม เธรดในพูลเธรดที่มีการจัดการนั้นเป็นเธรดพื้นหลังที่มีอยู่
‫เธรดเป็นพื้นหลัง คุณสมบัติเป็นจริง
‫ดังนั้นเราจึงไม่เคยเห็นมาก่อน
‫แต่ถ้าผมตั้งกระทู้แบบนี้ ผมขอเอากระทู้ใหม่จากที่นี่ครับ
‫และถ้าฉันต้องการตั้งค่าให้เป็นพื้นหลัง ฉันทำได้
‫พื้นหลังก็เท่ากับจริงเช่นกัน
‫นั่นคือวิธีที่ฉันสามารถตั้งค่าเธรดนี้เป็นพื้นหลังของคุณ
‫และในคิวในคิวพูลเธรดนี้ มีเพียงเธรดพื้นหลังเท่านั้น
‫อีกประเด็นที่ต้องพิจารณาคือเมื่อกลุ่มภัยคุกคามนำภัยคุกคามกลับมาใช้ใหม่ สิ่งที่เราได้เห็นที่นี่
‫ดังนั้นมันจึงนำรหัสภัยคุกคามที่เราได้เห็นมาใช้ซ้ำ
‫ถูกต้อง.
‫ID การจัดการภัยคุกคามนี้ถูกใช้ซ้ำจำนวนมาก
‫จากนั้นกลุ่มภัยคุกคามจะไม่ล้างข้อมูลในที่เก็บข้อมูลภายในของภัยคุกคาม
‫ดังนั้น เมื่อเมธอดตรวจสอบที่เก็บข้อมูลภายในของภัยคุกคาม ค่าที่พบอาจถูกทิ้งไว้จากการใช้ภัยคุกคามของกลุ่มภัยคุกคามก่อนหน้านี้
‫นั่นคือสิ่งที่คุณต้องพิจารณา
‫ฉันจะแบ่งปันลิงก์ที่คุณสามารถอ่านเพิ่มเติมเกี่ยวกับกลุ่มภัยคุกคามโดยทั่วไปได้