小弟最近在学习线程方面的内容。写了一个小程序,但是我跟踪代码时 如:
Hello h = new Hello();
h.start();
在start()方法执行完之后并没有进入线程Hello并执行里面的run方法,不太明白。希望有这方面经验的大虾看看,
最好是详细的解释一下。小弟不胜感激!
Hello h = new Hello();
h.start();
在start()方法执行完之后并没有进入线程Hello并执行里面的run方法,不太明白。希望有这方面经验的大虾看看,
最好是详细的解释一下。小弟不胜感激!
解决方案 »
- 求myeclipse8下的ssh配置
- 字符串截取
- java是否还会开源
- 父窗口是一个applet,在applet上通过js打开一个小窗口,能否通过js给applet上的字段赋值呢?折腾了两天了实现不了。
- SEO 帮帮忙
- 100分求一方法:导出数据库数据以及数据结构到XML文档,再将XML中的数据导入到另外一个数据库
- JSF中如何使h:panelGrid里的内容自动换行
- 急,在线等待!入门入门,还望大侠们赐教,一个关于Java配置的问题
- 请问如何在同一个EJB的多个实例间通信?或另一个办法:如何在EJB中取得application级的对象
- jboss可以支持的操作系统有那些?
- 哪位大大有山寨的struts啊?
- 问一个ibatis动态条件的问题
h.start();2.如果Hello实现Runnable
Hello h = new Hello();
h.run();共同执行线程方法:
Hello h = new Hello();
new Thread(h).start();
run()方法只是一个类中的普通方法,直接执行和普通的方法没有上面两样
start()方法则不同,它首先做了创建线程等一系列工作,然后调用行的run()方法
public void run() {
char c;
for(int i =0;i<200 ;i++)
{
c=(char)(Math.random()*26+'A');
theStack.push(c);
System.out.println("Producer"+num+":"+c);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
h.start();
new Thread(h,"新线程1").start(); 这样 你没有调用线程