我需要设计和 c++ 实现方面的建议(我是一个 java 人,不熟悉 c++)。
我有进程列表。一个线程向列表添加/删除进程,第二个线程在 10 毫秒内运行一次并收集所有已超时的进程(并将它们从列表中删除)。每个进程在添加到列表时都有一个创建时间戳。如果 3 秒过去了,并且该进程仍在列表中(未被第一个线程删除),则清理进程将其从列表中删除。
这必须具有低开销。
所以我有 3 种方法的 processListContainer:添加、删除、清理
需要在 add/removeById 和 clean 之间进行同步。这可以通过巧妙的思考来完成,例如在清理时创建一个新列表,并处理多个列表。
列表大小约为 100K,每秒添加数千