Câu hỏi được gắn thẻ «semaphore»

Semaphore là một nguyên thủy đồng bộ hóa để theo dõi số lượng tài nguyên có sẵn.



14
Một semaphore là gì?
Semaphore là một khái niệm lập trình thường được sử dụng để giải quyết các vấn đề đa luồng. Câu hỏi của tôi với cộng đồng: Một semaphore là gì và làm thế nào để bạn sử dụng nó?



8
Có Mutex trong Java không?
Có đối tượng Mutex trong java hay cách tạo một đối tượng? Tôi đang hỏi vì một đối tượng Semaphore được khởi tạo với 1 giấy phép không giúp được tôi. Hãy nghĩ đến trường hợp này: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } …



5
Làm cách nào để chọn giữa Semaphore và SemaphoreSlim?
Các giao diện công cộng của chúng xuất hiện tương tự nhau. Các tài liệu hướng dẫn quốc gia rằng SemaphoreSlim là một sự thay thế nhẹ và không sử dụng semaphores Windows Kernel. Tài nguyên này nói rằng SemaphoreSlim nhanh hơn nhiều. Trong những tình huống nào thì SemaphoreSlim …

6
CountDownLatch so với Semaphore
Có lợi thế nào khi sử dụng java.util.concurrent.CountdownLatch thay vì java.util.concurrent.Semaphore ? Theo như tôi có thể nói các đoạn sau gần như tương đương: 1. Semaphore final Semaphore sem = new Semaphore(0); for (int i = 0; i < num_threads; ++ i) { Thread t = new Thread() { …

7
Semaphore - Công dụng của số đếm ban đầu là gì?
http://msdn.microsoft.com/en-us/library/system.threading.semaphoreslim.aspx Để tạo một semaphore, tôi cần cung cấp số lượng ban đầu và số lượng tối đa. MSDN nói rằng số lượng ban đầu là - Số lượng yêu cầu ban đầu cho semaphore có thể được cấp đồng thời. Trong khi nó nói rằng số lượng tối đa …

3
Cần hiểu cách sử dụng SemaphoreSlim
Đây là mã tôi có nhưng tôi không hiểu những gì SemaphoreSlimđang làm. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); if …
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.