Không xem được? Mở trên YouTube
Khi nhiều tab cùng chạy một kịch bản, có những đoạn lệnh chỉ nên để một tab chạy tại một thời điểm, ví dụ lấy dữ liệu copy từ giả lập. Lệnh Luồng giới hạn của C-Auto Ultra đặt chốt khóa cho đoạn lệnh đó: tab đến trước được chạy, các tab khác phải đợi đến khi mở khóa.
Khác với bản Pro chỉ có một luồng giới hạn duy nhất cho tất cả các tab, bản mới cho phép đặt tên luồng và tạo không giới hạn số luồng giới hạn.
- Luồng giới hạn hoạt động thế nào
- Đặt đoạn lệnh giữa Khóa và Mở khóa
- Các luồng có tên khác nhau không ảnh hưởng nhau
- Cưỡng chế vào cho tab ưu tiên cao
- Ví dụ lấy clipboard và giới hạn theo nhóm chọn
Mục lục video
- 00:00Luồng giới hạn là gì
- 00:14Đặt tên luồng và số tab được chạy
- 00:50Khóa và mở khóa
- 01:16Luồng khác nhau và cưỡng chế
- 02:01Ví dụ: lấy văn bản qua clipboard
- 03:33Luồng theo nhóm chọn
- 04:26Khóa riêng cho từng tài nguyên
Luồng giới hạn là gì ▶ 00:00
Ở bản Pro chỉ có một luồng giới hạn duy nhất dùng cho tất cả các tab. Ở C-Auto Ultra, bạn đặt tên cho luồng và có thể tạo không giới hạn số luồng giới hạn.
Chỉ một tab được chạy cùng lúc ▶ 00:14
Ví dụ có một tập lệnh mà bạn chỉ muốn trong cùng một lúc chỉ có một tab được phép chạy. Tab đó chạy xong và mở khóa thì các tab khác mới được chạy.
Khóa và mở khóa ▶ 00:50
Đặt đoạn lệnh cần giới hạn vào giữa lệnh Khóa và Mở khóa. Khi một tab chạy đến lệnh khóa (ví dụ luồng 1), nó kiểm tra xem có tab nào đang giữ khóa không:
- Không ai giữ (đã mở khóa): tab chạy tiếp.
- Có tab đang giữ: tab đứng lại đợi.
Luồng khác nhau và cưỡng chế ▶ 01:16
Một lệnh khác dùng luồng 2 thì không liên quan gì đến luồng 1; nó chỉ kiểm tra luồng 2 có ai đang khóa không.
Cưỡng chế vào dành cho tab có độ ưu tiên cao hơn: tab đó bỏ qua việc kiểm tra đã mở khóa hay chưa và chạy thẳng vào đoạn lệnh.
Ví dụ: lấy văn bản qua clipboard ▶ 02:01
Khi nhấn copy trên giả lập, dữ liệu tự đồng bộ với clipboard của PC. Nếu nhiều tab cùng copy, giá trị dễ bị lẫn giữa các giả lập. Cách làm trong video:
- Khóa luồng có tên, ví dụ “Lấy Clipboard”.
- Nhấn nút copy trên giả lập và lấy clipboard ra.
- Lưu vào biến rồi mở khóa.
Như vậy cùng một lúc chỉ có một tab chạy đoạn lệnh này, clipboard của các giả lập không còn bị lẫn.
Luồng theo nhóm chọn ▶ 03:33
Tên luồng có thể lấy từ biến, ví dụ nhóm chọn của tab hiện tại. Khi đó cùng một lệnh nhưng chỉ giới hạn các tab trong cùng một nhóm: tab ở nhóm 1 dùng luồng 1, tab ở nhóm 2 dùng luồng 2.
Ứng dụng: lần lượt vào nhóm trong game ▶ 04:26
Ví dụ lập PT (nhóm) trong game: đặt giới hạn ở lệnh vào nhóm, mỗi thành viên chạy xong rồi mở khóa thì thành viên khác mới chạy lệnh vào nhóm.
💡 Mẹo:Dùng tên luồng khác nhau (hoặc lấy từ biến) để khóa những luồng khác nhau, các đoạn lệnh không liên quan sẽ không phải chờ nhau.
Câu hỏi thường gặp
Luồng giới hạn dùng để làm gì?
Để một đoạn lệnh chỉ có một tab chạy tại một thời điểm. Tab khác chạy đến sẽ đợi cho đến khi đoạn lệnh được mở khóa.
Có thể tạo bao nhiêu luồng giới hạn?
Bạn đặt tên luồng và tạo được không giới hạn số luồng. Ở bản Pro chỉ có một luồng duy nhất cho tất cả các tab.
Cưỡng chế vào là gì?
Tab được cài cưỡng chế sẽ không kiểm tra đã mở khóa hay chưa mà chạy thẳng vào đoạn lệnh, dùng cho tab có độ ưu tiên cao hơn.
Làm sao lấy dữ liệu copy từ giả lập mà không bị lẫn giữa các tab?
Đặt đoạn nhấn copy và lấy clipboard vào giữa Khóa và Mở khóa của cùng một luồng, lưu vào biến rồi mở khóa.
Nội dung video (phụ đề)
Luồng giới hạn là gì
Về cái luồng giới hạn này, ở bản Pro thì chúng ta chỉ có một cái luồng giới hạn duy nhất dành cho tất cả các tab, nhưng mà ở cái bản mới này
Đặt tên luồng và số tab được chạy
chúng ta có thể đặt tên luồng và có thể không giới hạn cái số lượng luồng giới hạn nha. Là như nào? Ví dụ như các bạn chạy đến một cái tập lệnh mà các bạn chỉ muốn trong cùng một lúc chỉ có một cái tab đấy. Chỉ có một tab là được phép chạy. Khi cái tab mà đã chạy xong rồi, phải mở khóa thì các tab khác mới được chạy. Đấy, thì các bạn thêm nó vào, thêm cái đoạn lệnh mà chúng ta cần giới hạn những cái tab được
Khóa và mở khóa
chạy vào giữa cái lệnh khóa và mở khóa này. Thì khi mà cái tab nó chạy đến một cái luồng, chạy cái lệnh luồng 1 này chẳng hạn thì nó phải kiểm tra xem là có ai đang giữ khóa này không. Nếu không có ai đang giữ, có nghĩa là đã mở khóa rồi ấy, thì nó mới chạy tiếp. Nếu không nó cứ đứng ở đây nó đợi. Đấy.
Luồng khác nhau và cưỡng chế
Còn khi mà các bạn có một cái lệnh khác mà các bạn để luồng 2 này chẳng hạn thì nó không liên quan gì đến thằng luồng 1 nhá. Nó sẽ kiểm tra xem là cái luồng 2 này có thằng nào đang khóa không. Nếu không có thì nó nhảy vào. Còn cái cưỡng chế vào có nghĩa là một cái tab mà nó có độ ưu tiên cao hơn ấy, các bạn có thể cài cho nó cưỡng chế vào. Nó không còn biết là có mở khóa hay chưa. Đấy là nó sẽ chạy thẳng vào trong cái lệnh này vào luôn. Đấy là cái cưỡng chế. Thì các bạn có thể áp dụng nhiều cái. Ví dụ như là cái... lấy cái clipboard,
Ví dụ: lấy văn bản qua clipboard
lấy cái văn bản từ cái... cái biến này thì ở cái thằng giả lập thì cái biến này nó sẽ, mỗi khi là nhấn copy trên cái giả lập thì nó sẽ tự đồng bộ với PC đúng không? Nếu mà các bạn muốn lấy được cái giá trị copy từ giả lập ấy thì các bạn sẽ phải cho nó vào cái giới hạn. Luồng giới hạn, ví dụ tên luồng là Lấy Clipboard chẳng hạn. Ví dụ tên luồng nó là như này. Thì đặt mọi nơi. Nó kiểm tra xem là cái thằng... thằng luồng Lấy Clipboard này có thằng nào đang sử dụng không? Nếu không thì nó mới đợi, sau đó nó nhấn vào cái cái nút copy giả lập và nó lấy cái clipboard ra. Sau khi lấy, lưu vào biến rồi nó mở khóa, thì cùng một cái lệnh đấy thì nó sẽ chạy cùng lúc là chỉ có một tab chạy lệnh đấy, thì nó sẽ không bị lẫn lộn những cái clipboard của các giả lập nữa. Đấy là một trong số những cái ứng dụng thôi. Hoặc là như một cái ứng dụng khác, ví dụ như là mình để một cái nhóm chẳng hạn.
Luồng theo nhóm chọn
Nhóm chọn chẳng hạn, nhóm chọn của tab hiện tại. Nhóm chọn này nó là cái nhóm ở đây, nó là cái nhóm chọn này. Thì cùng một lệnh thì nó sẽ giới hạn những cái thằng trong cùng một nhóm thôi. Bởi vì là với mỗi một cái thằng mà chạy đến thì là, ví dụ như thằng 1 và thằng 3 này thì cái tên luồng của nó sẽ khác nhau, bởi vì nó lấy tên luồng từ cái nhóm chọn, thì một đứa nó sẽ là cái nhóm 1, luồng 1, một đứa nó sẽ là cái luồng 2 này. Thì chúng ta có thể áp dụng vào ví dụ như PT nhóm trong game chẳng hạn, muốn mỗi tab nó chạy cái lệnh PT, nó đợi là được cho từng tài nguyên vào ấy, thì để đến cái lệnh vào nhóm
Khóa riêng cho từng tài nguyên
này chúng ta sẽ đặt cái giới hạn lại, thì tất cả thành viên nó... mỗi thành viên là nó sẽ chạy xong rồi nó mở khóa thì thành viên khác mới chạy lệnh vào nhóm đấy chẳng hạn. Thì đấy là chúng ta có thể đặt cái tên luồng, chọn theo cái biến này khác nhau để khóa những cái luồng khác nhau. Những luồng giới hạn này thì chúng ta có thể tạo, tạo không giới hạn số lượng luồng giới hạn. Nghe nó hơi rối tí.