由于JavaScript在单个线程中运行,在发出AJAX请求后,后台实际发生了什么?我想更深入地了解这一点,任何人都可以解释一下吗?
好的,所以我正在阅读有关同步的内容,并且我阅读了各种算法,例如自旋锁,信号量和互斥锁,以避免竞争条件.
但是,当多个进程完全同时访问数据时,这些算法无法阻止SMP中的竞争条件.
例如,假设处理器A中的线程1运行锁定(mutex1); 退出(1000); 解锁(mutex1);
处理器B中的线程2运行锁定(mutex1); 存款(1000); 存款(1000); 解锁(mutex1);
当两个线程在相同时间运行时,两个线程将同时处于临界区.
唯一的解决方案(应该是硬件级别)将使每个处理器彼此略微偏离,但它会破坏并行性的目的.
是否有任何硬件级别支持以避免多个处理器尝试在同一时间获取锁定的情况?
(这不是原子性问题,而是精确并行问题,我想知道SMP如何处理它).