
多线程
小医'bolg
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程和进程
区分进程是资源分配的最小单位,线程是CPU调度的最小单位程序中的一个应用是一个进程,而一个应用中可以开启多个线程例如:做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行)一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)进程间不会相互影响,一个线程挂掉将导致整个进原创 2020-08-28 09:39:24 · 468 阅读 · 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 · 506 阅读 · 0 评论 -
用户线程和守护线程
在java中有两类线程:user threa(用户线程)和 daemon比较通俗的说:任何一个守护线程都是真个jvm中所有非守护线程的保姆只要当前jvm实例中上存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束的时候,守护线程随着jvm一同结束工作。守护线程的线性应用就是:GC(垃圾回收器)Thread thread = new Thread(); // 设定 daemonThread 为 守护线程,default false(非守护线程) thread.s原创 2020-08-21 21:28:44 · 356 阅读 · 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 · 2642 阅读 · 1 评论