1、线程安全的概念:当多个线程访问一个类(对象或者方法)时,这个类始终做出正确的行为,那么这个类(对象或者方法)就是线程安全。
2、实现多线程的方式: 1.继承Thread类,重写run 方法 ,可以创建多个Thread类,其中调用start()方法来启动run方法。
如果直接调用run方法,并不会开启线程
2、实现接口runnable,重写run方法。(不返回结果)
3、保证线程安全:synchronized (可以在任意对象及方法上加锁,加锁的代码叫做"互斥区"或者"临界区")。
多线程加锁的总结:
多线程加锁中,会出现竞争锁,多个线程竞争锁,可能会导致cpu使用过大,应用卡顿,严重导致系统瘫痪。
二、多个线程多个锁。
实例:
运行结果为:
当加锁的方法中加上static,则表示类的锁,两个对象共用 一个锁。
那么结果会是:
总结如下: