最近看多线程比较多,对于volatile,syn,CAS,JMM模型(主内存,工作内存)这些概念有些理解。volatile,syn工作机制等。
以及对于多线程中可见性,原子性的理解。
随着对这些基础的掌握和理解,我觉得自己对于多线程方面的能力有一定的提升。
可见性的问题上,volatile是怎么解决可见性的。而syn又是如何解决可见性的。
对于原子性的问题上,syn又是怎么解决的。而syn是悲观锁,在处理共享数据问题的时候,效率可能比较差。因为当数据被修改的时候,其他的线程不能对数据进行读操作。
由此就引申出了CAS锁(乐观锁)这个机制。
同时,在练习的过程中,也踩了一些坑。也能够基于两种方式去实现小demo。
对于实现Runable接口来说,它适合处理共享数据,因为多个线程可以执行同一个Runable实现类中的run方法,且只有一个该实例化对象,那么它里面的属性也是唯一的。
而对于继承Thread类的方式,可以采用静态变量的方式来实现共享数据。