|
1
0
我要做的是完全依赖于我的应用程序及其日志组件的要求。
如果日志记录是“最大的努力”,那么ThreadPool就可以满足对应用程序所需性能和延迟的其他限制。在这里,记录器的异步I/O就可以了。由于您建议降低假定日志线程的优先级,这可能与应用程序的配置文件匹配。 如果线程池上发生了更关键的工作,那么我不会重载它来进行日志记录,特别是如果日志记录本身很重要的话—您很可能正在执行同步的、刷新的I/O以写出日志,这可能是一个瓶颈,具体取决于您要记录的内容的数量。 |
|
|
2
0
如果日志记录不是关键的,并且您希望异步进行,那么我建议使用单个后台线程进行日志记录,并使用生产者/消费者队列发送日志消息。与线程池相比,这可以提高性能,因为只有一个线程在不太重要的日志上执行I/O,这就不太可能在其他线程上阻止更高优先级的I/O。 您还可以使用此机制确保在记录之前提交关键日志。将它们添加到队列中,然后有一种机制等待特定消息提交。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |