Java -- Thread -- Collection -- 3传统线程互斥技术
线程安全问题例子:银行转账
同一个账户一边进行出账操作(自己交学费),另一边进行入账操作(别人给自己付款),线程不同步带来的安全问题。
示例:逐个字符的方式打印字符串

注意:
内部类不能访问局部变量,要访问需加final
静态方法中不能创建内部类的实例对象
打印结果发现的问题:线程不同步所致,两个线程都在使用同一个对象
互斥方法:
a、同步代码块
synchronized (lock){}
b、同步方法
方法返回值前加synchronized
同步方法上边用的锁就是this对象
静态同步方法使用的锁是该方法所在的class文件对象
使用synchronized关键字实现互斥,要保证同步的地方使用的是同一个锁对象
public synchronized void output(String name) { int len = name.length(); 这里就不要再加同步了,加上极易出现死锁 for (int i=0; i<len; i++) SOP(name.charAt(i));逐个字符打印 SOP();换行 }
浙公网安备 33010602011771号