Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 系统界面与配置 > 并行计算 > 并行计算中的资源共享 > CriticalSection >
Mathematica > 核心语言 > 调整和调试 > 并行计算 > 并行计算中的资源共享 > CriticalSection >

CriticalSection

CriticalSection
锁定关于并行计算的变量 ,计算 expr,然后释放 .
  • 最多允许一个具有相同锁定变量的临界区在任何并行内核上同时运行.
  • 用于锁定的变量在主内核中不应有值.
保护代码块不受其它线程的干扰:
如果不对进入更新代码的途径加以保护,子内核可能会覆盖结果:
保护代码块不受其它线程的干扰:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
如果不对进入更新代码的途径加以保护,子内核可能会覆盖结果:
In[3]:=
Click for copyable input
Out[3]=
锁定变量的形式可以是 :
单独的读写操作不是线程安全的:
使用 CriticalSection 使整个代码段不可分割(atomic):
通过将内核的 ID 写入锁定变量来获得锁:
共享函数可用于临界区的同步化:
使用共享变量和临界区效率较低:
锁定变量在其被用于一个临界区之前不能有值:
通过异常中断可以打破一个死锁状态:
进餐的哲学家问题,无死锁:
版本 7 的新功能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF