摘要: 1.原子性: 一个操作或者多个操作,要么全部执行成功,要么全部执行失败。比如账户转账问题,A账户向B转100,A账户减去100元,B账户加上一百元,这两个操作必须具备原子性,才能保证数据的安全,所以需要锁来保证数据的原子性 2.可见性: 当一个线程修改变量之后,其他线程能够立即看见修改到的值。比如有 阅读全文
posted @ 2019-01-03 22:56 七雨夜 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 1. 什么叫线程安全? 多线程对共享资源进行写的操作,受到其他线程的干扰,导致数据偶问题,这种现象叫做线程安全问题。 运行结果: 线程安全解决的办法: 使用多线程之间同步synchronized或使用锁(lock)。 为什么使用线程同步或使用锁能解决线程安全问题呢? 将可能发生线程安全的代码,在同一 阅读全文
posted @ 2019-01-03 22:11 七雨夜 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 上述例子中: 在main方法中join1线程调用join方法,如果main方法抢到cpu的执行权,会将cpu的执行权让出来给join1线程,直到join1线程执行完毕之后才进行main线程的执行。join1和join2是同步进行竞争cpu的资源。 运行结果: Thread的join方法在start方 阅读全文
posted @ 2019-01-03 13:11 七雨夜 阅读(1274) 评论(0) 推荐(0) 编辑