‫Chào mừng trở lại.
‫Trong video này, chúng tôi sẽ xem xét các nhóm mối đe dọa.
‫Do đó, chúng tôi sẽ tạo nhiều luồng và xem điều gì sẽ xảy ra.
‫Do đó, trước tiên hãy tiếp tục tạo một chuỗi rất cơ bản và tôi sẽ loại
‫bỏ nội dung nguồn hoàn thành này.
‫Và vì vậy chúng tôi đang ở một chủ đề rất chung chung ở đây.
‫Vì vậy, đó là một chủ đề chung mà chúng tôi đã sử dụng cho đến nay.
‫Và ở đây chúng ta đợi 1/2 chẳng hạn, nó có số luồng và để bắt đầu nó, tất nhiên chúng
‫ta cần gọi phương thức start ở đây cho đến cuối.
‫Vì vậy, bây giờ đây sẽ chỉ là một chủ đề và nó sẽ bắt đầu.
‫Vì vậy, không có gì mới ở đây.
‫Chúng tôi đã làm điều đó nhiều lần ở đó.
‫Vì vậy, sự khác biệt duy nhất là bây giờ tôi muốn sử dụng một cái gì đó được
‫gọi là nhóm luồng, nhưng trước khi tôi làm điều đó, tôi sẽ chỉ sử dụng một kiểu liệt kê một chữ số như
‫vậy và tôi sẽ chạy một phạm vi từ 0 giả sử bây giờ là 100 để liệt kê và đối với mỗi mục nhập, tôi muốn làm điều gì đó.
‫Vì vậy, tôi sẽ chỉ nói chỉ chạy mã cụ thể.
‫Vì vậy, đây chỉ là một dòng mã khá nhiều.
‫Và trong đó tôi muốn tạo các chủ đề.
‫Vì vậy, những gì nó sẽ làm là tôi có thể liệt kê hoặc điều này, thực sự, nó sẽ tạo ra nhiều
‫luồng và nó sẽ tạo ra 100 trong số đó.
‫Vì vậy, tôi sẽ sử dụng một liên kết ở đây.
‫Vì vậy, sử dụng liên kết hệ thống để sử dụng có thể liệt kê và nó phải được gọi là phạm vi với chữ E ở
‫cuối.
‫Vì vậy, chúng tôi ở đây.
‫Vì vậy, điều đó sẽ làm là nó sẽ đơn giản tạo ra 100 luồng và chúng ta sẽ thấy tất cả các luồng đó trên bảng điều khiển.
‫Vì vậy, hãy bắt đầu với điều đó.
‫Và chúng tôi ở đó.
‫Và như bạn có thể thấy, nó bắt đầu các chuỗi và nó kết thúc các chuỗi.
‫Và 102 là chủ đề cuối cùng.
‫Và như bạn có thể thấy, nó bắt đầu với ba.
‫Vì vậy, nó bắt đầu từ ba, sáu, năm, v.v.
‫Vì vậy, thứ tự, như bạn có thể thấy, rất khác với những gì chúng tôi mong đợi.
‫Vì vậy, các chủ đề, chúng có một ID khác sau đó là thứ tự mà chúng ta mong đợi chúng, nhưng sau đó chúng được bắt
‫đầu và kết thúc và có lẽ điều đó hơi quá nhanh.
‫Vì vậy, hãy tạo thêm một chút chủ đề.
‫Vì vậy, giả sử 1000 luồng và như bạn có thể thấy, nó tạo ra hàng tấn luồng, nhưng các luồng được kết thúc trước khi những luồng khác
‫được bắt đầu.
‫Vì vậy, tính năng liệt kê này sẽ khởi động chúng hoặc tạo chúng nhanh nhất có thể, nhanh nhất có thể.
‫Nhưng như bạn thấy, phải mất một chút thời gian.
‫Vì vậy, giả sử khoảng 100 mili giây hoặc lâu hơn để tạo một luồng như chúng ta, nó tạo ra chúng và sau đó bắt đầu
‫hoàn thành chúng.
‫Vì vậy, sau 1/2 nó tạo ra sáu luồng chỉ sau đó luồng năm.
‫Vì vậy, một trong những cái đầu tiên đã kết thúc.
‫Vì vậy, như bạn có thể thấy, nó tạo ra các luồng đó và điều đó không hiệu quả lắm bởi vì chúng ta không thể kiểm soát các luồng
‫đó, chúng ta không thể kiểm soát số lượng luồng này.
‫Và đó là một khía cạnh rất quan trọng của luồng mà bạn phải rất, rất cẩn thận và rất chính xác khi làm
‫việc với luồng.
‫Bạn cần biết bạn muốn làm gì với chuỗi đó và tại sao nó ở đó và cách làm việc chung với
‫mọi thứ trong chuỗi đó.
‫Vì vậy, đó chỉ là một ví dụ về các luồng, cách bạn có thể tạo nhiều trong số chúng và nó chỉ tạo ra 1000
‫luồng như vậy.
‫Và bây giờ chúng ta hãy xem xét các nhóm luồng, vì nhóm luồng là một cách tiếp
‫cận hơi khác khi sử dụng các luồng và chúng an toàn hơn một chút, giả sử như vậy, vì chúng không tạo ra 1000
‫luồng không bắt buộc.
‫Nó chỉ có các chủ đề hiện đang được yêu cầu.
‫Vì vậy, hãy tạo một nhóm luồng ở đây và xếp hàng đợi phương thức Q A của mục công việc của người dùng để thực thi.
‫Phương thức này thực thi khi một luồng hồ bơi luồng trở nên khả dụng, vì vậy chỉ khi nó có sẵn, thì
‫phương thức này sẽ được thực thi và nó cần một đối tượng ở đây.
‫Vì vậy, có hai cái khác nhau ở đây.
‫Bạn nhìn thấy callback và object và tôi sẽ cho nó giống như một object.
‫Chỉ cần gọi nó là oh không có gì đặc biệt ở đây và những gì tôi sẽ thực thi trong nhóm luồng.
‫Vì vậy, tôi sẽ nói cung cấp cho tôi ID của chuỗi hoặc số chuỗi và tốt, hãy nói khi nào nó bắt đầu và khi
‫nào nó kết thúc.
‫Vì vậy, đó là khá nhiều thứ mà tôi muốn làm với nhóm chủ đề này.
‫Và như bạn có thể thấy ở đây, chúng tôi không tạo cụ thể, chúng tôi không tạo các luồng trong đó, nhưng nhóm
‫luồng sẽ làm điều đó cho chúng tôi.
‫Vì vậy, có rất nhiều việc phải làm, chẳng hạn như 1000 luồng cần xử lý.
‫Và như bạn có thể thấy, nó chỉ tạo ra một lượng chủ đề cụ thể.
‫Và như bạn có thể thấy, nó bắt đầu và kết thúc các chuỗi nhiều hay ít cùng một lúc.
‫Và bạn cũng có thể thấy rằng tôi không có nhiều lõi trên CPU của mình ở đây vì nó chỉ có thể hoạt động với một lượng
‫luồng cụ thể cùng một lúc.
‫Vì vậy, thread pool sẽ xử lý mọi thứ mượt mà hơn rất nhiều như bạn có thể thấy.
‫Nhưng tất nhiên phải mất rất nhiều thời gian để vượt qua tất cả 1000 luồng đó.
‫Nhưng như tôi đã nói, nếu bạn sử dụng các mối đe dọa, bạn phải kiểm soát chúng.
‫Vì vậy, đừng ngẫu nhiên sử dụng các mối đe dọa.
‫Khá nhiều điều chính mà bạn sẽ sử dụng các mối đe dọa là khi bạn làm điều gì đó trong nền và bạn
‫làm điều gì đó ở phía trước.
‫Vì vậy, ở phía trước thường là một cái gì đó giống như giao diện người dùng.
‫Vì vậy, khi bạn sử dụng WPF hoặc nếu bạn sử dụng ứng dụng với Xamarin hoặc tạo ứng dụng với Xamarin, thì mọi thứ diễn ra
‫trong giao diện người dùng, vì vậy trong giao diện người dùng được thực hiện bởi chuỗi chính và sau đó hoặc chuỗi giao diện người
‫dùng và sau đó là một thứ gì đó giống như tải xuống video hoặc tải xuống dữ liệu nói chung từ internet hoặc
‫truy cập dữ liệu từ ổ cứng hoặc từ thẻ SD hoặc bất cứ thứ gì, mọi thứ.
‫Điều đó có thể mất một chút thời gian.
‫Ngay cả khi nó chỉ là một vài mili giây hoặc không phải một vài, nhưng vài mili giây, thì đó đã
‫là thứ nên được thực hiện ở chế độ nền, vì nếu không, giao diện người dùng của bạn sẽ bị đóng băng vì tốt,
‫nó không sẵn sàng để làm điều gì đó vì tất cả các chuỗi bận.
‫Được rồi.
‫Vì vậy, đó là về việc tạo các nhóm chủ đề.
‫Và nếu bạn có nhiều việc phải làm, bạn có thể sử dụng nhóm chủ đề.
‫Vì vậy, có một số điều cần xem xét khi sử dụng các nhóm đe dọa.
‫Vì vậy, các nhóm mối đe dọa thường ở đó để chạy công việc cụ thể hoặc thực hiện các công việc hoặc hạng mục công việc cụ thể và chúng sẽ đợi khá nhiều cho
‫đến khi chuỗi tiếp theo sẵn sàng hoặc một chuỗi được thực hiện trước khi bắt đầu mối đe dọa tiếp theo hoặc trước khi bắt
‫đầu với hạng mục công việc tiếp theo .
‫Vì vậy, đó là lợi thế của các nhóm đe dọa là họ không có thời gian nhàn rỗi hoặc thời gian ngủ ở nơi không có gì xảy
‫ra.
‫Khá nhiều vì có thể có những trường hợp đơn giản là không có gì phải làm với CPU của bạn hoặc
‫của bạn.
‫Và điều đó hoàn toàn ổn vì nếu không thì nó sẽ khá nặng đối với CPU nếu nó phải chạy
‫mọi lúc và làm nhiều thứ hoặc công việc nặng.
‫Nhưng nhìn chung nhóm mối đe dọa này, nó chỉ đơn giản nói rằng, được rồi, nếu không có gì hoặc nếu có đủ không gian
‫để tôi chạy một chuỗi hoặc tạo một chuỗi mới, tôi sẽ làm như vậy và tôi sẽ thực thi những thứ đó
‫phải hoàn thành.
‫Nhân tiện, các luồng trong nhóm luồng được quản lý là các luồng nền ở đó.
‫Chủ đề là nền tảng, tài sản là sự thật.
‫Vì vậy, chúng tôi đã không nhìn thấy điều đó trước đây.
‫Nhưng nếu tôi tạo một chủ đề như vậy, vì vậy ở đây hãy để tôi lấy chủ đề mới này từ đây.
‫Và nếu tôi muốn đặt nó vào nền, tôi có thể làm như vậy.
‫Vì vậy, nền là bình đẳng đúng chẳng
‫hạn.
‫Vì vậy, đó là cách tôi có thể đặt chủ đề này thành nền của bạn.
‫Và trong hàng đợi trong hàng đợi nhóm luồng này, chỉ có các luồng nền.
‫Một điểm khác cần xem xét là khi nhóm mối đe dọa sử dụng lại mối đe dọa, những gì chúng ta đã thấy ở đây.
‫Vì vậy, nó sử dụng lại ID mối đe dọa mà chúng ta đã thấy.
‫Đúng.
‫Mối đe dọa này được quản lý ID, nó đã được sử dụng lại rất nhiều.
‫Sau đó, nhóm mối đe dọa không xóa dữ liệu trong bộ nhớ cục bộ của mối đe dọa.
‫Do đó, khi một phương pháp kiểm tra lưu trữ cục bộ của mối đe dọa, các giá trị mà nó tìm thấy có thể còn sót lại từ việc sử dụng trước
‫đó đối với mối đe dọa trong nhóm mối đe dọa.
‫Vì vậy, đó là một cái gì đó mà bạn phải xem xét.
‫Tôi sẽ chia sẻ một liên kết với bạn có thể đọc thêm về các nhóm mối đe dọa nói chung.