有一个阿里88的面试题 第四题 我感觉是 死锁

startstartsvip 2012-03-26 12:56:29
有一个阿里88的面试题原题是java的, 我感觉是死锁,但java版没人提这个, 看看这边C#有大牛能看出来吗?

如果是,鄙视以下哪些搞java的

原题在这里 第四题:

http://topic.csdn.net/u/20120315/14/91f69b1a-2d18-4512-ab77-34799eaad132.html



下面的代码大部分情况下没有问题,在什么情况下会有问题?为什么?
java code

public class Stack {

LinkedList list = new LinkedList();

public synchronized void push(Object x){

synchronized(this){

list.addLast(x);

notify();

}

}

public synchronized Object pop() throws Exception{

synchronized(this){

if(list.size() <= 0){

wait();

}

return list.removeLast();

}

}

public static void main(String[] args) {


}

}
...全文
145 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
startstartsvip 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mngzilin 的回复:]

上面在return pop();前最好能sleep(100);这样更好点
[/Quote]

呵呵,原本的代码是想给他同步吧
mngzilin 2012-03-26
  • 打赏
  • 举报
回复
上面在return pop();前最好能sleep(100);这样更好点
EnForGrass 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bdmh 的回复:]

其实就是pop和push的执行顺序,只要先进入wait,就可能出问题吧,不惊动java,从字面上看而已
[/Quote]
支持
mngzilin 2012-03-26
  • 打赏
  • 举报
回复

public synchronized Object pop() throws Exception{

synchronized(this){

if(list.size() > 0){

return list.removeLast();

}

}
return pop();

}
bdmh 2012-03-26
  • 打赏
  • 举报
回复
其实就是pop和push的执行顺序,只要先进入wait,就可能出问题吧,不惊动java,从字面上看而已
无名小猿 2012-03-26
  • 打赏
  • 举报
回复
mngzilin 2012-03-26
  • 打赏
  • 举报
回复
你这个wait有点问题,如果开始没有item,你直接pop,是不是就死锁了,push都无法进行了
内容概要:本文围绕城市场景下的无人机三维路径规划问,提出了一种新颖的多目标粒子群优化算法(NMOPSO),旨在解决高维复杂环境中路径规划面临的多重挑战。研究聚焦于导航变量的多目标优化,构建了一个包含路径长度、飞行安全性、能量消耗等多个相互冲突目标的优化模型,并采用改进的粒子群算法进行高效搜索,最终获得一组Pareto最优解集,为实际决策提供多样化路径选择方案。该方法结合Matlab代码实现,详细阐述了算法的设计机制、数学建模流程及仿真验证过程,充分展示了其在密集城市建筑环境中有效规避障碍物、满足飞行动力学约束并实现多目标权衡的能力,具有较强的工程应用价值。; 适合人群:具备一定优化算法理论基础和Matlab编程能力,从事无人机路径规划、智能交通系统、自动化控制、人工智能应用等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于城市环境中的无人机物流配送、巡检监控、应急救援等实际任务的三维路径规划;②为高维、非线性、多约束的多目标优化问提供有效的算法设计思路与改进参考;③通过Matlab仿真平台复现算法,进一步开展性能测试、参数调优与算法对比研究,推动相关领域的技术创新。; 阅读建议:此资源强调算法原理与工程实践的深度融合,建议读者重点研读目标函数的构建方式、约束条件的处理策略以及NMOPSO算法的核心改进机制,并务必动手运行和调试所提供的Matlab代码,以深入理解算法在三维空间路径优化中的具体实现细节与实际表现。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧