局部变量:一般指方法参数,或者方法中定义的变量
成员变量:class类对象具备的对象,比如student类,有name、age、sex、各类学科的分数score等,属于个人的信息。
多个线程访问成员变量,可能出现线程1修改了成员变量,线程2也修改了成员变量,但是线程2修改后的值不生效,和线程1的值一样,存在执行时序先后顺序,导致返回值错误,不是自己想要的。
android postdelay必须要使用局部变量,不能使用成员变量。局部变量默认final的,不能修改。
神奇的打印,for循环中主线程延迟打印,数据一样的,只会打印2次,猜测handle postdelay,队列中做了优化处理。
多个子线程方式:
handle postdelayed做个优化处理,相同的返回最多输出2次:
成员变量,只有最后1次的修改生效,多个相同打印2次
内部类访问 成员变量
多线程访问成员变量,非final 存在线程安全问题,数据被修改:
多线程局部变量,没有安全问题: