多线程的一点小结(多线程示例)

  本篇文章为你整理了多线程的一点小结(多线程示例)的详细内容,包含有多线程总结 多线程示例 多线程的实现原理 多线程详解 多线程的一点小结,希望能帮助你了解 多线程的一点小结。

  最近看多线程比较多,对于volatile,syn,CAS,JMM模型(主内存,工作内存)这些概念有些理解。volatile,syn工作机制等。
 

  以及对于多线程中可见性,原子性的理解。
 

  随着对这些基础的掌握和理解,我觉得自己对于多线程方面的能力有一定的提升。

  可见性的问题上,volatile是怎么解决可见性的。而syn又是如何解决可见性的。
 

  对于原子性的问题上,syn又是怎么解决的。而syn是悲观锁,在处理共享数据问题的时候,效率可能比较差。因为当数据被修改的时候,其他的线程不能对数据进行读操作。
 

  由此就引申出了CAS锁(乐观锁)这个机制。

  同时,在练习的过程中,也踩了一些坑。也能够基于两种方式去实现小demo。
 

  对于实现Runable接口来说,它适合处理共享数据,因为多个线程可以执行同一个Runable实现类中的run方法,且只有一个该实例化对象,那么它里面的属性也是唯一的。
 

  而对于继承Thread类的方式,可以采用静态变量的方式来实现共享数据。

  CAS锁实现逻辑:
 

  V内存地址 A旧值 B期望值
 

  线程1在修改共享变量的时候,会拿A和内存地址V上的实际值比较,如果相等,则将A修改为B。
 

  如果不相等,则拿地址V上的值来更新A值,然后再次修改,执行上面这个逻辑。
 

  -- 总结:更新的时候去判断A和V上的值是否相等。在数据库的体现就是条件:where stock = A ,数据库的值就是V
 

  库存数量为A这个值那么就执行sql更新语句

  以上就是多线程的一点小结(多线程示例)的详细内容,想要了解更多 多线程的一点小结的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: