![]() |
1
0
我要做的是完全依赖于我的应用程序及其日志组件的要求。
如果日志记录是“最大的努力”,那么ThreadPool就可以满足对应用程序所需性能和延迟的其他限制。在这里,记录器的异步I/O就可以了。由于您建议降低假定日志线程的优先级,这可能与应用程序的配置文件匹配。 如果线程池上发生了更关键的工作,那么我不会重载它来进行日志记录,特别是如果日志记录本身很重要的话—您很可能正在执行同步的、刷新的I/O以写出日志,这可能是一个瓶颈,具体取决于您要记录的内容的数量。 |
![]() |
2
0
如果日志记录不是关键的,并且您希望异步进行,那么我建议使用单个后台线程进行日志记录,并使用生产者/消费者队列发送日志消息。与线程池相比,这可以提高性能,因为只有一个线程在不太重要的日志上执行I/O,这就不太可能在其他线程上阻止更高优先级的I/O。 您还可以使用此机制确保在记录之前提交关键日志。将它们添加到队列中,然后有一种机制等待特定消息提交。 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 2 年前 |