降降降 2021-09-11 08:54 采纳率: 81.3%
浏览 47
已结题

java中什么是原子性质,事务的原子性,原子性是加了锁吗?

网上面说原子性就是在执行过程中不会被打断的操作,也不会被线程切换,如果这样说的话,是不是在执行一个事物的时候,这个事务还没有执行完的时候也不能被其他线程抢占资源,事务不是也有原子性吗?

  • 写回答

3条回答 默认 最新

  • CodeMartain 2021-09-11 14:51
    关注

    原子性是原子性,锁是锁,原子性是一切事务要么全部执行,要么全不被执行;
    原子性一般是通过加锁来保证原子性的实现,但是还有一些原子类的存在可以做大不加锁也能实现数据的准确;
    多个缘溪行操作放在一块可能就不是原子操作了;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 壹氿 2021-09-11 09:38
    关注

    1、原子性是指一组操作要么全成功,要么全失败
    2、事务也是一样,以数据库事务原子性举例,当开启一个数据库事务,在这个事务内,所有的增删改操作必须全部成功或者全部失败,这样才能保证一致性
    3、在Java中,很多JDK自带的类已经帮我们保证了原子性,例如JDK8之后的java.util.concurrent.atomic 包下的类,但是要注意,多个原子操作合并起来就不一定是原子操作了,这时候就需要我们通过加锁去保证

    感觉回答的还够清晰就采纳下吧!

    评论
  • 急速光粒 2021-09-11 09:15
    关注

    java通过synchronized后跟括号,括号里是变量,这样,一次只有一个线程进入该代码块.此时,线程获得的是成员锁.即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入.实现了锁+队列保证线程运行序列。

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 9月11日

悬赏问题

  • ¥30 哈夫曼编码译码器打印树形项目
  • ¥20 求完整顺利登陆QQ邮箱的python代码
  • ¥15 怎么下载MySQL,怎么卸干净原来的MySQL
  • ¥15 网络打印机Ip地址自动获取出现问题
  • ¥15 求局部放电案例库,用于预测局部放电类型
  • ¥100 QT Open62541
  • ¥15 stata合并季度数据和日度数据
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
  • ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色