Java多线程共享变量的方法有以下几种:
1. 使用共享对象:多个线程共享一个对象,并且该对象的属性被多个线程访问和修改。通过使用synchronized关键字或者Lock接口来控制对共享对象的访问,保证线程安全。
2. 使用volatile关键字:使用volatile关键字修饰共享变量,可以保证可见性,即当一个线程修改了共享变量的值,其他线程立即可见该变化。
3. 使用synchronized关键字:使用synchronized关键字修饰共享变量的读写操作,可以保证原子性和可见性。synchronized关键字可以用于修饰方法,也可以用于修饰代码块。
4. 使用Lock接口:使用Lock接口的实现类来控制对共享变量的访问。Lock接口提供了更灵活的加锁和解锁操作,可以实现更复杂的线程同步。
5. 使用Atomic类:Java.util.concurrent.atomic包下的Atomic类可以保证对共享变量的原子操作。Atomic类提供了一些原子操作方法,如getAndIncrement()、compareAndSet()等,可以避免使用synchronized关键字对共享变量进行加锁。
需要注意的是,以上方法并不是适用于所有情况的,具体的选择需要根据实际情况和需求来决定。