JAVA main函数执行启动一个线程,和web请求执行启动一个线程,为什么在任务管理器里看到不一样?详细如下

如果我用main直接运行,在电脑的任务管理器里看到会新建一个进程;但是我如果在JSP页面请求过来执行启动一个线程,在任务管理器就看不到会新建一个进程了,这是为什么?很疑惑... 如果我用main直接运行,在电脑的任务管理器里看到会新建一个进程;但是我如果在JSP页面请求过来执行启动一个线程,在任务管理器就看不到会新建一个进程了,这是为什么?很疑惑
代码类似这样
public class Hello extends Thread {
private String name;
public Hello(String name) {
this.name = name;
}

int num =500000;
public void run(){
for (int i = 0; i < 500000; i++) {
if(num>0){
System.out.println(name+"在启动"+Thread.currentThread().getName()+"线程卖出票号"+num--);
}
}
}
public static void main(String[] args) {
String str = "张三";
Hello hello = new Hello(str);
hello.start();
}
}
我明白一个进程包括多个线程的。请不要跟我说这个问题了,看清我的问题回答
展开
 我来答
百度网友0253d4b
2013-04-07
知道答主
回答量:3
采纳率:0%
帮助的人:5.6万
展开全部
任务管理器中看到的是系统进程,一个进程中运行多个线程,你能看到的是进程而不是线程,你可以吧进程理解为线程的容器,这样就明白了
追问
我当然知道啦,你看下我问的问题
追答
难道我的表达有问题?例如,你现在新建一个java project,从main函数运行你这段代码,那么,java虚拟机就会创建一个进程去容纳你这个线程执行,这时,不出意外的话你在任务管理器中会看到javaw.exe这个进程,你启动的这个线程就在这里面运行,这就是你所谓的看到这个线程。再拿出你自己的java工程来举例,你有jsp有后台,那么,你一定需要启动这个java工程,启动工程时虚拟机又建了一个javaw.exe进程来运行你这个工程,这时你通过jsp跳转去执行这个main函数,肯定会启动你建的这个线程,此时你没有看到任务管理器中有新生成进程,其实你的线程已经在javaw.exe里运行了,这就是我说的进程可以看成是线程的容器,从而你看不到这个你所谓的线程,导致了你错觉,你应该搞清楚进程和线程到底有什么关系,手工打字累死了。
你是linux下开发吧,用ps命令查看线程详细,其实linux下没有真正的线程,实现方式是进程模拟线程,相当于通道模拟
禄岚o2
2013-04-07 · TA获得超过131个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:131万
展开全部
当你启动web项目的时候就会新建一个线程,然后每一次请求都是该线程里面的一个进程。而启动main方法会直接创建一个线程
追问
有办法能看到吗,我进行对该线程起名和分组都看不到呢?
追答
具体叫什么名字我也不太清楚,可以百度一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
437384801
2013-04-07 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:497万
展开全部
线程不可能看得到。你要理解线程在进程里面。因此进程才可以看到。线程是内部的
追问
我当然知道啦,你看下我问的问题啦
追答
因为在Servelet你请求的时候会新建一个线程。真正的进程就是JAVA.exe这个进程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张策是gou
2013-04-07 · TA获得超过250个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:87.9万
展开全部
http://www.docin.com/p-287560083.html&endPro=true
自己去看看吧,main方法跟进程的关系!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式