你需要做多个处理.. 那么首先要看看你的多个处理是否需要多线程来完成。假设你有个处理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();
在创建了约 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();