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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2013-4-19 16:41  /  1913 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

针对你这个问题,我之前一直没有太多时间说说自己的见解,先表示道歉啊
我说说自己的见解吧:
1、上面已经都说了,线程一旦死亡,就不能再复活了,如果还在创建线程,就说明这个对象还是存活的。
2、我们知道,CPU也不是一次都执行好多线程,也是一个一个的执行,每次只能执行一个线程(多核除外)。所以对于创建出来的线程,没执行的都是放在线程池中的。(线程池是存放未执行的线程的一块内存,如果有线程,就不会再创建相同的线程了;其实和字符串池是一样的,我个人认为都是存放在常量池中,这个还有待研究。)
3、如果线程死亡了,是非正常的,就会抛异常,对于这个线程的资源呢?我个人认为,不会立即释放的(否则怎么会电脑卡死呢,因为一直存在内存中没立即释放呗),而是垃圾回收机制在某个时刻会自动释放已经死亡或者不再使用的垃圾的。至于是怎么回收的,建议你了解一下垃圾回收机制:http://bbs.itheima.com/thread-42683-1-1.html
4、主线程也就是main为啥会一直运行呢?这个我觉得是因为这个线程是jvm创建的,并不是你的线程对象创建的,而且抛出的异常都是你创建出的线程对象死亡而抛出的。所以主函数并不受影响啊。
5、对于这种情况,没办法,只能尽快结束你的程序,用任务管理器,或者建议用eclipse中直接结束。
回复 使用道具 举报
丘凤光 发表于 2013-4-29 13:10
最近上网不太方便,才回昆哥你,不好意思啦啦啦

你这见解很清晰。我用的是实现Runnable接口,没有用Exec ...

其实你这样查找,很难找到其中的链接的,因为好多都是用网页的一些代码写的,原理我不太清楚的,而且很多数据库是不能随便访问的,这里面还涉及到js的知识,抓包的知识,等等,我也是听别人说的,具体还真不了解。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马