在软件编程中,多线程是个绕不开的话题。多线程的使用,能够提高程序的运行效率,但也带来新的问题:如何保证下面的线程安全呢?

例如:
- public class Test {
- public void threadMethod(int j) {
- int i = 1;
- j = j + i;
- }
-
这个例子中,不存在全局变量,所以不存在线程安全问题。
官方解释:局部变量作用域仅限于函数内部, 离开该函数的内部就是无效的。
例如:
- public class Test {
- public static final String DEFAULT_NAME = "abc";
- }
这个例子中,全局变量被final修饰,所以不存在线程安全问题。
官方解释:final被修饰的变量为常量一旦赋值不能修改,被修改的方法为最终方法不能被重写,被修饰的类是最终类,不能被继承。
例如:
- public class Test {
- private String name;
- public String getName() {
- return name;
- }
- }
这个例子中,没有对外暴露修改name字段的入口,所以不存在线程安全问题。
官方解释:
public 表示共有:类的数据成员和函数可以被该类对象和派生类访问。
private 私有型:自己的类可以访问,但派生类不能访问。
protected 保护型:自身类和派生类可以访问相当于自身的private型成员,它同private的区别就是在对待派生类的区别上。
例如:
- public class Test {
- private int age = 18;
-
-
- public synchronized int getAge1(int i) {
- age = age + i;
- return age;
- }
-
- public int getAge2(int i) {
- synchronized(this){