并发知识点

2022-11-29 08:55:53 浏览数 (2)

基本上所有的并发模式在解决线程冲突的问题时,都是采用序列化访问共享资源的方案。这意味着在一个特定的时刻只允许一个任务来访问共享资源。通常时通过在代码前加上一条锁定语句来实现,这样在给定的一段时间内只可以有一个任务运行这段代码。因为锁语句产生了一种互斥的效果,这种机制也便常常被称为互斥量(mutex)

锁也称为监视器

当一个域的值依赖于他之前的值时,(例如计数器),volatile失效,如果某个域受到其他域的值的限制,那么volatile也失效. 使用volatile而非synchronize的唯一安全的情况是类中只有一个可变的域,使用synchronize是第一选择,其他皆有风险

如果一个域可能会被多个任务同时访问,或者这些任务至少有一个是写任务,就该把这个域设为volatile,告诉IDE不执行任何移除读写操作的优化

,

0 人点赞