看不懂你的问题。
start() 之后会自动调用 run 的。
必须要 new Thread(..) 之后才会产生一个新线程
start() 之后会自动调用 run 的。
必须要 new Thread(..) 之后才会产生一个新线程
解决方案 »
- Linux下开发JAVA和Windows下开发JAVA有何区别
- 两个IP地址,接收UDP数据包的问题
- 用java的IO技术将www.hao123.com的首页下载到本地,并保存为index.html.
- 请问一般swing如何与服务器通讯?
- 用java实现一个功能关于日期的
- 怎样删除文件中指定的一行
- 问个弱弱的问题
- 能否用java编写能支持断点续传的FTP Server啊
- 如何将Image类型转成BufferedImage?
- 为什么我下载的JAVA的applet程序运行之后,汉字都变成了方格(我用的是win2000中文版)
- 请问谁知道国外有没有好的关于JAVA桌面程序开发的网站,谢谢.
- 国际化如何解决?
在创建了约 7200 个线程后,内存溢出,main 线程结束.大家可以试试,看看自己的机器能创建多少线程.public class ThreadTest {
public static void main(String[] args) {
int i = 0;
while(true) {
Runnable ra = new Runnable(){
public void run() {
while(true) {
System.out.print(Thread.currentThread().toString());
try {
Thread.sleep(100000);
} catch (InterruptedException ie) {
}
}
}
};
Thread thread = new Thread(ra,"T"+i);
thread.start();
System.out.print(++i+" ");
}
}
}
一个笨办法
new Mythread的时候传一个参数进去不就行了吗?Thread th=new MyThread(FUNC1)run()
{
case FUNC1
myFunc1();
break;
}大致就是这样
如果,我在构造器里start(),那么,调用其它的方法也是会多线程处理吗?
那么首先要看看你的多个处理是否需要多线程来完成。假设你有个处理A,B,C
你的多个处理之间相互关联么?比如:你需要在C运行到某一时刻后调用B的处理结果,或者C和B需要交互处理,那么你需要多线程操作,按照你的处理方式,你需要3条处理线程来同时进行3个处理,你需要建立3个程序A,B,C都继承于Thread.
A a = new A();
B b = new B();
C c = new C();
a.start();
b.start();
c.start();
如果你的A,B,C完全是独立的,没有任何关联的方法,你完全可以在一个线程里完成这三个处理,没必要用道多线程,如果你需要空出主线程的话,可以通过程序D来完成所有的处理
public class D extends Thread
{
public D(){}
public void run()
{
a();
b();
c();
}
a(){}
b(){}
c(){}
}
-----------------
D d = new D();
d.start();