![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
juc
文章平均质量分 57
小医'bolg
这个作者很懒,什么都没留下…
展开
-
在@Test线程中多线程的方法并不起作用
@Test不会等待其他线程结束再去结束程序,只要@Test执行完成,那么这个程序也就结束了 而在main方法中运行时会区分子线程是否是守护线程 解析: junit是将要测试的方法作为参数传递给了main函数,在main函数中执行 test函数在main函数中执行,如果test执行结束,那么main函数将会调用system.exit(0);即时还有其他的线程还在运行,main函数也会直接调用system.exit(0)的方法 system.exit(0)是系统调用的,通知系统理解结束jvm的运行,即时jvm中原创 2021-01-17 08:08:44 · 357 阅读 · 1 评论 -
juc 脏读
为什么会出现脏读 java内存模型规定所有的变量都是存在主内存中的,每个线程都有自己的工作内存。线程对变量的所有操作都必须在工作内存中进行,而不能对主存进行操作。并且每个线程不能访问其他线程的工作内存。变量的值何时从线程的工作内存写回主存,无法确定 解决 volatile关键字的作用,保证了变量的可见性(visibility)。被volatile关键字修饰的变量,如果值发生了变更,其他线程立马可见,避免出现脏读的现象。 在执行过程中线程a中的notice发生了变化,但是线程b斌没有感知到这个变化 publ原创 2021-01-10 11:37:44 · 97 阅读 · 1 评论