Discuss / Java / 关于“完整代码”的例子

关于“完整代码”的例子

Topic source

疑问一:ts.add(t)这个代码是什么意思?ts和add不是两个类的实例吗?为什么可以用.的方式相连接?另外括号有个(t)是什么意思?

疑问二:根据add.join();我的理解是add里面的代码跑完了,即先输出10次的addtask再进行execute的输出。但是为什么add里的try{Thread.sleep(100)}的时间数一旦改变,为什么会改变一个addtask一个execute的输出方式,会变成有时候几个addtask完再execute?

我知道我的理解是有问题的,希望各位网友指正并给予详细的步骤思维,谢谢!

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

ArrayList.add

雪峰老师,那请问为什么add线程里的Thread.sleep()时间发生改变,会影响输出?我的理解是因为有add.join()这一代码,所以总应该是等待add线程完成10次进栈,t线程再进行出栈。老师能指出我理解的错误之处吗?以及解释下add.join()下面的Thread.sleep与add线程内的Thread.sleep的关系。

我猜你是把add里面的sleep的时间改小了。生产者-消费者模型下,生产慢话自然是生产一个消费一个;要是生产得快,就可能出现产品积压,一次生产好几个没人消费,也可能出现由于存在库存连续消费好几个的情况。


  • 1

Reply