问题:并发编程中的原子性是什么?数据库的ACID中,A也是指原子性,这两个原子性之间完全一样吗?
解答:原子性是指:一个操作是不可中断的,要全部执行完成,要不就都不执行。
数据库事务中,保证原子性通过事务的提交和回滚,但是在并发编程中,是不涉及到回滚的。
所以,并发编程中的原子性,强调的是一个操作的不可分割性。
所以,在并发编程中,原子性的定义不应该和事务中的原子性完全一样。
它应该定义为:一段代码,或者一个变量的操作,在没有执行完之前,不能被其它线程执行。
问题:并发编程中的原子性是什么?数据库的ACID中,A也是指原子性,这两个原子性之间完全一样吗?
解答:原子性是指:一个操作是不可中断的,要全部执行完成,要不就都不执行。
数据库事务中,保证原子性通过事务的提交和回滚,但是在并发编程中,是不涉及到回滚的。
所以,并发编程中的原子性,强调的是一个操作的不可分割性。
所以,在并发编程中,原子性的定义不应该和事务中的原子性完全一样。
它应该定义为:一段代码,或者一个变量的操作,在没有执行完之前,不能被其它线程执行。