t1是线程,你start以后程序会直接开启一个线程,并且在主线程main里面直接运行下一行代码。你这里主线程没有阻塞,直接就结束了。所以,t1线程还没运行完主线程就结束了,程序退出,当然看不到结果啊。
建议改成:
t1.start(); t1.join();
这样主线程就会等待t1。
Producer中的Stack op=null改成Stack op=new Stack();试试