java中多线程是应用比较广泛的 , 线程 : 就是程序运行的一条执行路劲 . 进程 : 是一个程序运行开始 . 大多数代码中 ,都是单线程设计 , 多线程一般用于多个线程同时运行 , 或者在一个代码中 ,多个方法同时执行 . 创建多线程的方法有三种 : 1 . Thread继承类 2 . Runnable接口实现类 , 或者匿名内部类方法 3 . 带返回值的Callable接口实现类 .
多线程中还存在一个安全问题 , 在处理业务中 , 某个数据不能同时被线程访问并执行的情况下 , 最终的业务处理结果会与实际或者理想结果相违背 , 程序不会报错 , 但是得到的结果却是错误的 , 例如 : 当两个人同时在同一个账户取钱 ,一方取钱成功 , 理论上是账户扣钱 , 当另一方取钱金额大于账户余额时 , 应该提示余额不足 , 但是在java代码中 , 另一方会取到钱 , 并且程序不会报错 . 得到的结果是账户余额为负数 . 所以为了解决上述安全问题 , 就出现了锁的概念 .
创建锁的方法有三种 , 1.同步代码块 2 . 同步方法 3. lock 锁 . 锁的使用词 synchronized .在第一个方法中 加在共同业务的方法名上 第二个方法是加在类名方法上