请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

课后思考题

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?
需要协调多个线程完成“步调一致”工作的,多个线程一起执行,到全部执行完成,再一起执行。具体没有使用过,这里编一个场景,假设写一个测试工具,定期从相同服务的不同机器上发出请求,统计相应时间,最后生成“报表”,再去触发,再去生成。。。

正在回答 回答被采纳积分+3

1回答

求老仙 2021-03-31 19:05:50

回答很好! 

补充下几个错误:

自旋锁是Lock,CAS Loop Wait Free Alg.(见无锁编程)

CyclicBarrier的面试回答,注意要总分总:比如先说,用于多线程周期性计算和资源管理。再举例,例子说的不好,不够简单有冲击力。 这里你可以再思考下。


1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉4331336 #1
    这个CyclicBarrier的例子还请老师指导下。。网上找了一圈也不是特别满意
    回复 有任何疑惑可以回复我~ 2021-04-07 08:47:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信