Mic*_*ael 7 javascript multithreading asynchronous
我有一个异步应用程序,这意味着在任何给定时间都可以有N个事件.是否有一种已知的算法可以对N个线程进行互斥,而无需对每个线程进行硬编码以获得ID?
我不认为Javascript本身具有对象锁定 - 因为Javascript基本上是单线程的.您可能能够找到运行多个Javascript代码线程的库或实现 - 但它们是否都在相同的变量空间中运行?他们需要以某种方式相互沟通.
假设您的多个线程可以mutex以某种方式共享静态变量,并且只要您认为 ' ++'被认为是执行线程的系统的原子操作,那么这个怎么样?
int mutex = 0;
mutuallyExclusiveOperation(){
succeed=false;
while(!succeed){
while(mutex>0){ sleep(); }
m=mutex++; //"Simultaneously" read and increment
if(m>0)mutex--;
else{
doMutuallyExclusiveThing();
succeed=true;
mutex--;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4612 次 |
| 最近记录: |