线程相关
追光的人(陈聪)
这个作者很懒,什么都没留下…
展开
-
synchronize原理以及和CAS的浅层比较
1.为什么需要synchronize 我自己的理解(问题):当多个线程对同一个对象M进行操作的时候,如果是非原子性对象(比如a++这样的,要分好几个指令来走),A线程处理该对象M的时候,很可能会出现在执行完某个指令之后,因为被分配到cpu时间片段用完了,只能等待再次被分配时间片段,而这时,其他线程(线程B)对该对象进行了操作,导致对象M的值不一样了,之后由于A线程被分配到了时间片段,所以可以继续执行未处理完的指令,但是它很傻,不会在处理前看看对象M是否已经变了,而是继续按照之前拿到值进行操作。 我自己的原创 2021-04-03 17:40:42 · 215 阅读 · 2 评论 -
线程创建的三种方式
1.new 一个类,但是这个类需要继承Thread,并且重写thread里面的run方法。 public class CustomThread extends Thread { //run是线程真正执行的任务 @Override public void run() { for (int i = 0; i <10 ; i++) { System.out.println(i); } } } 缺点:因为每个类都只原创 2021-04-01 19:27:03 · 292 阅读 · 0 评论