课后思考题
来源:4-16 【章节总结】重难点总结&课后讨论题

慕粉4331336
2021-03-28
Q:说说Java的线程都有哪些状态?
Java线程刚被新建(NEW)
Java线程可能被调度(Runnable)
Java线程终止(Terminated)
Java线程因获取不到资源,如磁盘IO被阻塞(BLOCKED)
Java线程被放入waitSet或者Park(Waiting)
Java线程执行了sleep主动让出CPU(TimeWaiting)
Q:说说Java有协程吗?
Java原生没有协程,但是似乎有一些第三方库,而类似Kotlin这样的JVM语言是有协程的。
Q:自旋锁是不是CAS LOOP ?反之呢?
我认为是的,CAS来不断尝试争抢,线程处于运行状态占据CPU的资源
反之,CASLoop可以做很多其他操作,不一定是“锁”的含义,如CLH队列中将一个节点并发的添加到LinkedList中,就是一个CASLoop,CASLoop可以干的事情很多,自旋锁只是其中的一个特例。
Q: 什么场景下用CyclicBarrier?
需要协调多个线程完成“步调一致”工作的,多个线程一起执行,到全部执行完成,再一起执行。具体没有使用过,这里编一个场景,假设写一个测试工具,定期从相同服务的不同机器上发出请求,统计相应时间,最后生成“报表”,再去触发,再去生成。。。
写回答
1回答
-
求老仙
2021-03-31
回答很好!
补充下几个错误:
自旋锁是Lock,CAS Loop Wait Free Alg.(见无锁编程)
CyclicBarrier的面试回答,注意要总分总:比如先说,用于多线程周期性计算和资源管理。再举例,例子说的不好,不够简单有冲击力。 这里你可以再思考下。
112021-04-07
相似问题
课件
回答 1
Springboot 请求整合与限流
回答 1