并发可以提高效率,但是并发带来的最大的问题就是资源合理配置的问题,就是什么时候给谁什么资源,因为资源分配的先后可能导致程序执行的结果不同。
并发最大的难点就是资源分配的问题。
可以分为两类,一类是RAW,读取的可能是错误的数据,另一种就是WAW,因此Bernstein条件约束的就是两个进程孩子间互相没有RAW和WAW,这样两个进程就不会有访问上的冲突。自然可以安全的并发执行。
但是理论和现实是有不协调的。我们无法简单的从代码上看出会不会并行有问题,因此这样的情况实际上是交给操作系统来安排了。