【发布时间】:2020-09-16 02:56:07
【问题描述】:
作为multi-threading 的初学者,我对这些术语 感到有些困惑。有人可以帮我在他们之间划一个边界吗?我怕一开始就学错了,也没有人来“考验”我。
如果我错了,请纠正我:)
如果两个线程同时在1 个 CPU 内核上运行,它们将是 context-switched。 Context-switching 基于time-slice algorithm,这有助于Scheduler“决定”在核心上保留哪一个以及多长时间。这 2 个 threads 是否与这些术语共享相同的 variable 并不重要,对吧?
但是还有thread interference。只有当两个线程共享相同的变量时,这个term才基于?
我说得对吗?
【问题讨论】:
-
您应该在网上搜索一般的多任务处理教程或 java 教程。
-
对于前两个术语,请参见例如维基百科:Context switch 和 Time slice,这是 Preemption 文章的一部分。对于第三项,请参见例如The Java™ Tutorials - Thread Interference.
标签: java multithreading context-switch