问题:并发编程中的原子性是什么?数据库的ACID中,A也是指原子性,这两个原子性之间完全一样吗?

解答:原子性是指:一个操作是不可中断的,要全部执行完成,要不就都不执行

数据库事务中,保证原子性通过事务的提交和回滚,但是在并发编程中,是不涉及到回滚的。

所以,并发编程中的原子性,强调的是一个操作的不可分割性。

所以,在并发编程中,原子性的定义不应该和事务中的原子性完全一样。

它应该定义为:一段代码,或者一个变量的操作,在没有执行完之前,不能被其他线程执行。