多线程
小医'bolg
这个作者很懒,什么都没留下…
展开
-
线程和进程
区分 进程是资源分配的最小单位,线程是CPU调度的最小单位 程序中的一个应用是一个进程,而一个应用中可以开启多个线程 例如: 做个简单的比喻:进程=火车,线程=车厢 线程在进程下行进(单纯的车厢无法运行) 一个进程可以包含多个线程(一辆火车可以有多个车厢) 不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘) 同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易) 进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源) 进程间不会相互影响,一个线程挂掉将导致整个进原创 2020-08-28 09:39:24 · 418 阅读 · 0 评论 -
juc的辅助类
countdownlatch * 由尾开始计算 * 用一个程序计数器CountDownLatch,每执行完成一个线程,调用countDown()使计数器减一,主线程中使用countDownLatch的await()方法等待 使用程序计数器: import java.util.concurrent.CountDownLatch; public class JunitMultiThreadTest { private int i = 5; /* * 线程计数器 * 将线程数量初始化 * 每执行完成一条线程,调原创 2020-08-21 21:29:59 · 466 阅读 · 0 评论 -
用户线程和守护线程
在java中有两类线程:user threa(用户线程)和 daemon 比较通俗的说: 任何一个守护线程都是真个jvm中所有非守护线程的保姆 只要当前jvm实例中上存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束的时候,守护线程随着jvm一同结束工作。 守护线程的线性应用就是:GC(垃圾回收器) Thread thread = new Thread(); // 设定 daemonThread 为 守护线程,default false(非守护线程) thread.s原创 2020-08-21 21:28:44 · 324 阅读 · 0 评论 -
在@Test线程中多线程的方法并不起作用
@Test不会等待其他线程结束再去结束程序,只要@Test执行完成,那么这个程序也就结束了 而在main方法中运行时会区分子线程是否是守护线程 解析: junit是将要测试的方法作为参数传递给了main函数,在main函数中执行 test函数在main函数中执行,如果test执行结束,那么main函数将会调用system.exit(0);即时还有其他的线程还在运行,main函数也会直接调用system.exit(0)的方法 system.exit(0)是系统调用的,通知系统理解结束jvm的运行,即时jvm原创 2020-08-21 21:27:19 · 2386 阅读 · 1 评论