java 线程只执行一次,Java的多线程问题,详细讲解多线程安全三种方法

java多线程:

89ae7dee084f1e90002308f3d63f742f.png

创建多线程有四种方法

3f69d856228b144cad880116a6b3f8db.png

程序:一段静态的代码

进程:正在运行的程序

线程:一个程序内部的一条执行路径

8873a37792d0e30328cbfd3cce53b055.png

68e34acdac5394c641825ee41d23d330.png

765c1fe58ed467c89c899278de02d23a.png

4bd1f90cde31faad00eeff53df46770b.png

93f6f63b21b05a1bc94856df565075dd.png

05d33e0fbb265b14f2c2b76b6d48142f.png

为什么不用 .run();

1d4e44223834be97c071c52fd693ce4c.png

d516ab32df60e1d60684bf179af12d38.png

b25cd2ce409298950dbf8b8338231396.png

常用方法:

96ada046dc3636a06d8c50f1f9ee7977.png

ebc171656789263fc8c6b9a244784b4d.png

3e1def2dc1ec033aa28a3e57e4c134ef.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 静态方法线程安全问题与实例方法线程安全问题有些不同。下面我会讲解一下 Java 静态方法线程安全问题。 首先,静态方法是属于类的,不属于对象的,因此多个对象都可以同时调用同一个静态方法。而且静态方法在类加载时就已经被加载到内存中了。 如果静态方法中没有使用到静态变量,那么它是线程安全的,因为它不会改变任何共享状态。但是,如果静态方法中使用到了静态变量,那么就需要考虑线程安全问题了。 如果静态方法中使用到了静态变量,并且对该变量进行了修改,那么就可能会出现线程安全问题。比如,如果有两个线程同时调用一个修改静态变量的静态方法,那么就可能会出现竞态条件,导致数据不一致或者出现脏数据等问题。 为了解决这个问题,可以使用 synchronized 关键字来保证静态方法线程安全性。比如,可以在静态方法前面加上 synchronized 关键字,这样就能够保证同一时间只有一个线程能够进入该方法。 另外,还可以使用 volatile 关键字来保证静态变量的线程可见性,确保所有线程都能够看到最新的值。但是,这并不能保证线程安全性,因为 volatile 只能保证可见性,不能保证原子性,所以仍然可能会出现竞态条件的问题。 综上所述,静态方法线程安全问题需要根据具体情况进行判断和处理。如果有多个线程同时调用静态方法,并且静态方法中使用了静态变量,那么就需要注意线程安全问题,并采取相应的措施来保证线程安全

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值