多线程高并发

一个同步方法可以调用另一个同步方法,一个线程对象已经拥有某个对象的锁,再次申请的时候仍会得到该对象的锁。
也就是说synchronized获得的锁是可重入的
volitile关键字,使一个变量在多个线程间可见

防止并发的应用场景:扣钱,秒杀
多线程应用场景:用户量较大。优点:效率高。
常见使用场景:ajax异步请求;
1、后台任务,例如:定时向大量(100w以上)的用户发送邮件;2、异步处理,例如:发微博、记录日志等;3、分布式计算

并发是同时执行一个东西,只有多线程才能支持并发。单线程是排着队执行的。
解决并发的方案:redis存一个值。用户操作的时候,存一个值,值为1,操作完删掉这个值。当有另一个用户操作时,先看redis是否有这个值,值>1就是在操作中,直接返回,没有值时可操作。

解决线程安全可以看做是防止并发。用synchronized加锁来防止高并发。

你可能感兴趣的:(多线程高并发)