A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问下大家在多线程执行的时候为什么要Ctrl+c  为什么程序不会停下来呢?小弟愚昧

点评

因为老师写的是死循环,没有让程序停下来,只能强制让虚拟机退出  发表于 2012-11-12 17:54
多看几遍视频就OK 了 。  发表于 2012-11-12 11:06

7 个回复

倒序浏览
应该是因为你在线程里调用了什么阻塞性的方法,比如accept()啊,或者什么的
回复 使用道具 举报
不一定一定要Ctrl+c 吧。
设置好循环变量。
线程执行到变量控制后,线程结束。。
或者,开启守护线程,主线程执行完毕,后台线程就结束了。
时间问题,不写代码了。
多看两遍线程的教程就可以了。
楼下可以继续补充补足代码说明。。。。。。。。


回复 使用道具 举报
本帖最后由 杨雪松 于 2012-11-11 17:29 编辑

视频中 老毕都是用的while(true)来循环
这本身就是一个无限循环,
因为要演示多线程的运作,
多跑一会可以看出不同线程之前有还是没有规律
比如是不是交叉运行,还是会出现连续运行两次的错误.
回复 使用道具 举报
不是非得要按Ctrl  C线程才会结束运行!因为线程中大多是循环结构,只要控制好循环条件,线程就可以结束!还有一种情况就是守护线程,当正在运行的线程都是守护线程时,JAVA虚拟机退出,线程也就随之结束了!
回复 使用道具 举报
Ctrl +C是一个中断操作,视频中演示的代码你注意看,有些是无线循环或是阻塞的,这个时候Ctrl +C是一个强制中断的操作
回复 使用道具 举报
杨雪松 发表于 2012-11-11 16:57
视频中 老毕都是用的while(true)来循环
这本身就是一个无限循环,
因为要演示多线程的运作,

明白啦!!
回复 使用道具 举报
不一定要ctrl+c的呢,只要你设计好循环根据循环的,希望能帮到你吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马