cost 173 ms
異步生產者-消費者是否有助於在整個程序期間不竊取線程?

[英]Is having async producer-consumer helps to not steal a thread for duration of whole program?

下面的代碼從 tcp 接收消息並將它們傳遞給適當的消息處理程序。 根據消息類型,消息處理程序可能需要幾分鍾或幾秒鍾來處理它。 我選擇了為每種消息類型設置單獨的處理程序的設計。 但是,現在我在想: 即使我有異步生產者-消費者( await _messages.Reader.WaitToReadAsy ...

一旦生產了單個項目,生產者線程的通知就不會到達消費者線程

[英]notification from producer thread is not reaching to consumer thread once single item is produced

在下面的代碼片段中,一旦生產者生產了單個項目,生產者線程到消費者線程的通知似乎就不會到達,並且由於這種行為,一旦生產者完成生成相當於緩沖區大小的項目,那么只有消費者開始消費項目。 任何人都可以建議我們應該如何使用信號量來解決這個問題。 ...

無法從 BlockingCollection 檢索數據塊<t></t>

[英]Cannot retrieve chunks of data from BlockingCollection<T>

我經常發現自己確實想要 stream 塊中的數據而不是一個接一個。 通常我在需要執行一些基於 I/O 的操作時這樣做,比如我想限制往返的數據庫插入。 所以我得到了這個不錯的小擴展方法: 這工作得很好,但我注意到它不適用於BlockCollection&lt;T&gt; GetConsumingEnu ...

kafka 在消費者中產生消息

[英]kafka produce messages in consumer

我有一個需要將消息傳遞到多層處理的應用程序。 我需要這樣做,因為所有新消息都應該放入第一個通用主題中,以便可以對其進行處理以計算類型,然后將它們放入另一個主題中(以進行進一步處理),從現在開始相同key的消息,go自動直接轉到第二個主題。 我打算為每一層創建多個主題。 消息首先 go 進入第一層並得 ...

傳播最新數據的線程安全緩沖區

[英]Thread-safe buffer that propagates the latest data

我有一個數據源,它每 15 到 20 毫秒創建(產生)一個PointF 。 我需要每 10 毫秒存儲(消耗)這些點。 我的做法是使用一個3點寬的緩沖區和指針來實現無鎖訪問: 我的想法是一旦新數據到達,它將存儲在舊數據的“上方”。 然后將讀指針設置為這個 position,然后遞增寫指針。 如果現在已 ...

如何正確使用 ConcurrentQueue 在單獨的線程上寫入文件?

[英]How to properly use a ConcurrentQueue for writing in a file on a separate thread?

我有一個從外部接收數據的應用程序,我正在努力做到這一點,以便將這些數據寫入文件是在一個單獨的線程中完成的(因為將它寫入直接接收它的線程會導致問題足夠快地寫入數據)。 在我看來, ConcurrentQueue很適合這個。 但是我有一個問題,因為下面的代碼根本不會寫入文件: 聲明: 消費者: Co ...

即使 LinkedBlockingQueue 為空,線程也會阻塞

[英]Thread blocking even when LinkedBlockingQueue is empty

為了進行清楚的調查,我只有一個線程生成一個實體,一個線程使用它。 這兩部分共享LinkedBlockingQueue。 在使用實體后,線程將其轉發給其他線程以將實體保存在數據庫中。 在通過隊列插入和刪除實體的幾次迭代后,生產線程停止工作。 調試日志顯示它就像隊列阻塞插入操作一樣,即使隊列為空或有足夠 ...

Fast producer,slow consumer,bounded channel,降低喚醒producer的頻率

[英]Fast producer, slow consumer, bounded channel, reduce the frequency of awakening the producer

我有一個基於有界Channel&lt;T&gt;的生產者-消費者場景¹。 這些項目來自 RDBMS,生產者連接到 RDBMS 並一個接一個地獲取它們。 特殊之處在於,我沒有在生產者的整個生命周期內保持數據庫連接的奢侈。 我必須在頻道已滿時關閉連接,並在頻道再次有空間可用於新項目時重新打開連接。 所以 ...

Golang:如何判斷通過緩沖通道進行通信時生產者或消費者是否較慢?

[英]Golang: How to tell whether producer or consumer is slower when communicating via buffered channels?

我在 Golang 中有一個應用程序,其中我有一個管道設置,每個組件執行一些工作,然后通過緩沖通道將其結果傳遞給另一個組件,然后該組件對其輸入執行一些工作,然后將其結果傳遞給另一個組件通過另一個緩沖通道,依此類推。 例如: C1 -&gt; C2 -&gt; C3 -&gt; ... 其中 C1 ...

當限制較高時,HttpClient.SendAsync 一次處理兩個請求

[英]HttpClient.SendAsync processes two requests at a time when the limit is higher

我有一個 Windows 服務,它從數據庫中讀取數據並使用多個 REST API 調用處理這些數據。 最初,此服務在計時器上運行,它會從數據庫中讀取未處理的數據,並使用使用SemaphoreSlim限制的多個線程對其進行處理。 這工作得很好,除了數據庫讀取必須等待所有處理完成才能再次讀取。 Serv ...

為什么有時在生產者-消費者問題的輸出中,消費者得到的是以前的值,而不是生產者產生的新值?

[英]Why sometimes in the output of the producer-consumer problem, the consumer is getting a previous value instead of the new value produced by producer?

我有下面的 Java 代碼:class Q2 { int n; boolean valueSet = false; synchronized int get() { while(!valueSet) try { ...

我需要幫助 我想退出程序

[英]I need help I want to exit the program

**我在這段代碼中需要幫助它是關於使用多個生產者和消費者的有界緩沖區問題的簡單代碼它的工作並且沒有問題......但是當生產者完成時消費者仍在等待並且程序永遠運行所以怎么能我解決這個**``` 當它完成代碼退出()時,我試圖創建一個共享計數器 ...

多個消費者線程需要從隊列中讀取相同的元素

[英]Multiple consumer threads need to read the same element from a queue

我要求多個消費者需要從 python 中的隊列中讀取所有元素。我正在使用 ThreadpoolExecutor 提交任務。 例如,如果隊列有 3 個元素並且有 3 個消費者線程,則所有 3 個消費者都需要從隊列中獲取所有 3 個元素。 queue.get() 的問題在於它讀取元素並將其從隊列中彈出 ...

一個生產者,多個消費者。 如何在無界緩沖區中使用條件變量?

[英]One producer, multiple consumers. How to use condition variables with unbounded buffer?

盡管 Stackoverflow 上有很多類似的問題,但我無法為以下生產者-消費者問題提出解決方案: 我的程序有三個線程: 一個寫入器線程從文件中讀取數據,將數據保存到sensor_data_t結構中,然后使用sbuffer_insert(buffer, &amp;sensor_data)將其寫入 ...

Rust Tokio“未來無法安全地在線程之間發送”,如何使用 watch::channel 共享 Vec<u8> 數據?</u8>

[英]Rust Tokio "future cannot be sent between threads safely ", How to use watch::channel to share Vec<u8> data?

該項目正在實施 TcpListener 服務。 它監視 pc 事件並向 TCP 客戶端廣播。 根據需求(一個生產者和許多消費者)。 但是代碼引發了“未來不能安全地在線程之間發送”錯誤:use tokio; use tokio::{io::AsyncWriteExt, net::TcpStream, ...

Channel/BlockingCollection alloc 免費替代品?

[英]Channel/BlockingCollection alloc free alternatives?

我最近對我的框架進行了基准測試,發現它分配了大量垃圾。 我正在使用Channel&lt;T&gt;並且TryRead或ReadAsync操作在每次調用時分配 memory。 所以我用BlockingCollection&lt;T&gt;交換了它,它也在 TryTake 期間分配了TryTake 。 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM