【发布时间】:2013-02-27 07:29:12
【问题描述】:
我想实现一个 CoreLocal 映射,它的工作原理就像 ThreadLocal,只是它返回一个特定于当前线程正在运行的核心的值。
这样做的原因是我想编写将从队列中获取作业的代码,但我想优先考虑其关联数据已经在与选择作业的线程相同的 L1 缓存中的作业从队列中。因此,我不想为整个程序设置一个作业队列,而是希望为每个内核设置一个队列,并且只有当队列为空时,工作线程才会查看其他内核的队列。
【问题讨论】:
-
听起来你的纳秒时间真的很低。
-
你有任何保证,一旦线程从队列中取出工作,它就不会被重新调度到另一个核心,从而使所有这些机制适得其反吗?
-
Q==队列!将线程保持在具有热缓存的内核上比纳秒 (webtide.intalio.com/2012/12/…) 更有价值。我不知道线程可以跳过内核的频率或事件的频率,但您必须假设存在一些关联,否则缓存将根本不起作用。
-
@gregw 我想知道您是否可以在
CoreLocal上取得一些进展,或者它最终是如何解决的。
标签: java multithreading performance core