‫ยินดีต้อนรับกลับ.
‫ในวิดีโอที่แล้ว คุณได้เห็นวิธีใช้เธรดและวิธีตั้งค่าภัยคุกคามและเริ่มต้นใช้งาน
‫และในวิดีโอนี้ เราจะมาดูความสมบูรณ์กัน
‫ดังนั้นเราจึงต้องการใช้เธรดเพื่อทำสิ่งใดสิ่งหนึ่ง และเฉพาะในกรณีที่งานใดงานหนึ่งเสร็จสิ้น เราต้องการดำเนินการต่อ
‫ลองมาดูกันว่า
‫ฉันจะสร้างตัวแปรใหม่ที่เรียกว่าแหล่งงานที่สมบูรณ์ ดังนั้นฉันต้องการแหล่งงานที่สมบูรณ์ใหม่และบูลีน
‫อย่างที่คุณเห็น มันกำลังบ่นเพราะไม่รู้ว่างานนี้มาจากไหน
‫และเพื่อแก้ไข ฉันจำเป็นต้องใช้งานเธรด sys
‫ฉันจะทำอย่างนั้นสักครู่
‫แล้วที่นี่.
‫สิ่งที่ผมจะทำต่อไปคือการสร้างตัวแปรทดสอบ
‫ฉันแค่จะเรียกงาน ซึ่งเป็นที่มาของงานให้เสร็จ หรือเราเรียกมันว่าแหล่งงานที่เสร็จสมบูรณ์
‫และเราตั้งค่างานเป็นผลลัพธ์
‫เราจึงอยากได้ผลลัพธ์ของงานนั้น
‫สมมติว่ามีงานเฉพาะที่ควรเรียกใช้และทำบางสิ่ง จากนั้นเราต้องการดูผลลัพธ์
‫ถ้ามันได้ผลหรือไม่ได้ผล และเพื่อทดสอบ ผมจะกำจัดเส้นสีแดงนี่ตรงนี้
‫ดังนั้นฉันจะเรียกใช้โค้ดราวกับว่าไม่มีอะไรอื่นในวิธีการหลักนี้ มีเพียงรหัสนี้ที่นี่
‫ดังนั้นฉันจะเรียกใช้มัน
‫และอย่างที่คุณเห็น ไม่มีอะไรเกิดขึ้น
‫ดังนั้นคอนโซลจะยังคงอยู่หรือเปิดอยู่ แม้ว่าเราจะไม่มีเส้นสีแดงของคอนโซลนี้ ซึ่งเรามักจะใช้เสมอหากเราต้องการเปิดคอนโซลไว้
‫นั่นหมายความว่ามีบางอย่างที่ยังไม่เสร็จสิ้น
‫นี่จึงไม่เคยเสร็จสิ้นจริง ๆ เพราะไม่มีผลลัพธ์
‫ดังนั้นแหล่งที่มาของความสมบูรณ์นี้จึงไม่เคยสมบูรณ์จริง ๆ ดังนั้นจึงไม่เคยตั้งค่าเป็นจริง
‫และนั่นคือสิ่งที่เราทำได้ด้วยตนเอง
‫สมมุติว่าเรามีงาน และเราอยากได้ผลลัพธ์ตามที่เรามีที่นี่ แต่จริงๆ แล้วเราต้องการทำงานนั้นให้เสร็จ
‫ณ จุดหนึ่ง
‫สิ่งที่เราต้องทำคือสร้างเธรด
‫ฉันจะสร้างเธรด var
‫เท่ากับเธรดใหม่ และเธรดนั้นจะไม่เริ่มทันที
‫ฉันกำลังใช้วิธีการที่ต่างไปจากที่เราทำที่นี่เล็กน้อย
‫ตรงนี้เราแค่พูดหัวข้อใหม่ แล้วเราก็มีเนื้อความของเธรด
‫ดังนั้นสำหรับโค้ดที่ควรดำเนินการเมื่อเริ่มต้นเธรดนี้ และเราเริ่มต้นทันที
‫เราเริ่มทันที
‫แต่ที่นี่เราสร้างเธรดเท่านั้นและเราสามารถทำสิ่งต่างๆ ได้ในภายหลัง
‫นี่ฉันแค่จะบอกว่ากระทู้นอน
‫ดังนั้นเพียงแค่นอนหลับ สมมุติว่า 1,000 มิลลิวินาที แล้วหลังจากนั้นลองตั้งค่าแหล่งที่มาของงานให้เสร็จเป็น
‫true เพื่อตั้งค่าผลลัพธ์สามชุด
‫สิ่งที่จะทำคือพยายามเปลี่ยนงานพื้นฐานเป็นสถานะงานที่รันเป็นสถานะเสร็จสิ้น
‫ซึ่งหมายความว่าทำถูกต้องแล้ว ดังนั้นจะพยายามตั้งค่าให้เสร็จสิ้นเป็นจริง
‫นั่นหมายความว่าแหล่งที่มาของงานนี้เสร็จสมบูรณ์จะถูกตั้งค่าเป็นจริง
‫แล้วเราจะได้ VAR นี้ซึ่งเป็นผลมาจากภารกิจนั้น
‫มาสร้างกันสักหน่อย
‫ก้าวเข้ามาที่นี่
‫ดังนั้นให้ดีบักขั้นตอนและลองตรวจสอบ ID ของเธรด
‫และตอนนี้เพื่อเริ่มต้นเธรด เราจำเป็นต้องเรียกการเริ่มเธรดจริง ๆ
‫และอย่างที่คุณเห็นออบเจกต์เธรดนี้ ซึ่งก็คือเธรดที่จะเริ่มต้นขึ้น
‫ฉันจะเริ่มหัวข้อแบบนี้ และในขณะที่เรากำลังดูอยู่ เรามาดูกันดีกว่าว่ามีอะไรน่าสนใจบ้าง
‫ดังนั้นเมื่อใดก็ตามที่คุณสร้างเธรดอ็อบเจ็กต์ จะมีคุณสมบัติและเมธอดมากมาย
‫หรือเราจะใช้หลายตัวตรงนี้ก็ได้
‫ดังนั้น คุณจึงเห็นได้ว่ากระดานเป็นกระดานหนึ่งที่คุณสามารถยกเลิกชุดข้อความเพื่อหยุดชุดข้อความได้ แต่จะเรียกใช้ข้อยกเว้นหรือทำให้เกิดข้อยกเว้น
‫มันอันตรายมากที่จะทำจริง
‫ดังนั้นคุณสามารถทำให้แอปพลิเคชันของคุณพังโดยพิจารณาจากความปลอดภัยที่สร้างขึ้น
‫แต่กระดานเป็นสิ่งที่คุณสามารถใช้หยุดเธรดได้อย่างแน่นอน แต่คุณไม่มีทางรู้ว่ามันใช้งานได้ไกลแค่ไหน
‫ดังนั้นจึงอาจเกิดขึ้นได้ว่ามันไม่ได้ทำกับงานที่คุณต้องการจะทำและนั่นจะทำให้โปรแกรมของคุณทำงานไม่ถูกต้อง
‫และแน่นอนว่า มีวิธีการอื่นๆ อีกมากที่น่าสนใจทีเดียว เช่น หรือคุณสมบัติแบบนี้ยังมีชีวิตอยู่
‫ซึ่งหมายความว่าเธรดนี้ยังมีชีวิตอยู่ จากนั้นเป็นพื้นหลัง ซึ่งหมายความว่าเราสามารถพูดได้ว่าเธรดควรทำงานในพื้นหลังและเราทำได้
‫ตรวจสอบกับคุณสมบัตินี้
‫ไม่ว่าจะอยู่เบื้องหลังหรือไม่ก็ตามเป็นภัยคุกคามต่อเธรด
‫นั่นคือสิ่งที่เราจะตรวจสอบในภายหลัง
‫ดังนั้นเธรดพูลคืออะไร?
‫นั่นคือสิ่งที่เราจะเห็นในภายหลังและอื่นๆ
‫ดังนั้น ID เธรดที่ได้รับการจัดการจึงเป็นสิ่งที่ค่อนข้างน่าสนใจ ซึ่งจะบอกเราเกี่ยวกับ ID ของเธรดที่เรากำลังรันอยู่
‫ลองใช้กันเถอะ พิมพ์ลงบนคอนโซล
‫เห็น W และฉันจะใช้หมายเลขเธรดเช่นนี้
‫ดังนั้นคุณใช้เครื่องหมายดอลลาร์ แล้วคุณมีหมายเลขเธรดหรือ ID เธรด ดังนั้นคุณสามารถเรียกมันได้
‫จากนั้นในวงเล็บปีกกา คุณใช้ ID ที่มีการจัดการเธรด ดังนั้น
‫ID เธรดที่จัดการเธรด
‫และแน่นอนคุณต้องปิดสตริง
‫เอาล่ะ เรามาทดสอบกัน
‫มารันโค้ดกัน
‫และเราคือเรามีหัวข้อหลักของเรา
‫และจนถึงตอนนี้ เรามีบางอย่างบนคอนโซล
‫อย่างที่คุณเห็น หมายเลขเธรดคือสาม
‫จำนวนเธรดที่เรามีที่นี่ที่เราสร้างขึ้นเองคือสามและเธรดหลักที่มี
‫ID ที่มีการจัดการคือหนึ่ง
‫อย่างที่คุณเห็น ตัวเลขไม่จำเป็นต้องเป็นอย่างที่คุณคาดหวัง
‫ดังนั้นแม้ว่าเราจะไม่ได้สร้างเธรดเพิ่มเติมของตัวเองในที่นี้ มันเริ่มจาก 1 ถึง 3
‫ดังนั้นจึงต้องมีเธรดอื่นที่ทำงานอยู่ซึ่งเราไม่เห็นที่นี่
‫ไม่เป็นไร.
‫และอีกอย่าง หากคุณต้องการดูว่าเธรดได้เริ่มต้นและสิ้นสุดหรือไม่ คุณสามารถทำได้ดังนี้
‫ดังนั้น.
‫ลองตัดมันตรงนี้แล้วใส่ในบรรทัดนี้ตรงนี้
‫และที่จริงแล้ว สมมุติว่าเริ่มต้น และที่นี่
‫เราไม่สามารถใช้เธรดได้เนื่องจากเธรดคือเธรดนี้ที่เราสร้างที่นี่
‫แต่ถ้าเราต้องการใช้มันในที่นี้ภายในเนื้อหาของเธรด เราจำเป็นต้องใช้ thread dot เธรดปัจจุบัน
‫ดังนั้นถ้าเราทำตอนนี้ เราจะมีเธรดที่เราอยู่ ซึ่งก็คือสิ่งนั้น
‫และที่นี่เราบอกว่ามันเริ่มต้นและหลังจากเสร็จสิ้นเราก็บอกว่ามันจบลงแล้ว
‫และตอนนี้เรามาเริ่มกันเลย
‫มันรันโค้ด
‫และอย่างที่คุณเห็น ไม่มีอะไรปรากฏบนคอนโซล
‫ไปที่ขั้นตอนต่อไป
‫แล้วมันก็เริ่มต้นและจบลง
‫มันจึงเกิดขึ้นเร็วมาก
‫แต่เท่าที่เห็นก็มี
‫เลยให้เวลากันอีกสักหน่อย
‫ขอเปลี่ยนเป็น 5 วินาที
‫และลองกำจัดจุดดีบักนี้ที่นี่ แล้วเริ่มกันเลย
‫ดังนั้นเธรดที่สามจึงเริ่มต้นขึ้นและใช้เวลาสักครู่และก็เสร็จสิ้น
‫ตอนนี้คุณจะเห็นว่าโค้ดบรรทัดนี้ทำงานอย่างถูกต้องและหยุดคอนโซลของเรา
‫เรามาลองอ่านบรรทัดของคอนโซลกันเพื่อให้คอนโซลเปิดอยู่
‫ดังนั้นเธรดที่สามจึงเริ่มต้นและ 5 วินาทีต่อมาก็ควรจะสิ้นสุดเพื่อให้เราเป็นเธรดที่สามที่สิ้นสุด
‫สมมติว่าเราต้องการดูงานได้ผลจริง
‫ดังนั้นหากได้ผลออกมาให้ตั้งค่าเป็นจริงหรือไม่
‫เรารู้เพราะไม่อย่างนั้นเราจะไม่ไปขั้นตอนต่อไป
‫แต่ลองใช้คอนโซลบรรทัดขวาในนี้
‫งานเสร็จแล้วและที่นี่ฉันจะเขียนผลลัพธ์ที่จะทดสอบ
‫ดังนั้น การทดสอบจึงเป็นเพียงชาม อย่างที่คุณเห็นที่นี่ เพราะมันใช้ได้ผลหรือไม่ได้ผล
‫ดังนั้นเราจึงขายสิ่งนี้ไม่ว่าจะจริงหรือเท็จ
‫ลองตรวจสอบดู
‫และตอนนี้เราต้องรอ 5 วินาที
‫หมายเลขสามเริ่มต้น 5 วินาทีและหมายเลขสามสิ้นสุดลงและบอกว่างานเสร็จสิ้นแล้วเท่ากับจริง
‫นั่นคือสิ่งที่เกิดขึ้นกับบรรทัดนี้
‫มันเลยบอกว่ามันเสร็จสิ้นแล้วกับภารกิจเฉพาะนี้
‫ไม่เป็นไร.
‫ดังนั้นในวิดีโอนี้ คุณได้เห็นวิธีที่คุณสามารถใช้แหล่งงานที่เสร็จสมบูรณ์ ซึ่งระบุว่างานเสร็จสิ้นแล้วหรือไม่
‫คุณสามารถตั้งค่าเป็นจริงหรือสามารถทำบางสิ่งบางอย่างแล้วเสร็จได้
‫หลังจากนั้น คุณยังเห็นว่าคุณสามารถสร้างเธรดได้ในลักษณะที่แตกต่างกัน
‫ดังนั้นคุณสามารถสร้างตัวแปรเธรดได้จริง ซึ่งคุณจะต้องเริ่มต้นแน่นอน และคุณสามารถใช้เหมือนเป็นอ็อบเจ็กต์ของเธรดคลาส
‫จากนั้นเราก็เห็นวิธีที่เราสามารถใช้จัดการ ID เธรด เพื่อให้เราทราบ ID ของเธรดเฉพาะนั้น
‫และนั่นคือสิ่งที่เราจะพิจารณาเพิ่มเติมอีกเล็กน้อยในวิดีโอหน้า โดยเราจะสร้างเธรดหลายชุดพร้อมกัน
‫จากนั้นเราจะดูว่าเครื่องจะจัดการกับมันอย่างไร
‫แล้วพบกันใหม่ในวิดีโอหน้า