黑马程序员技术交流社区

标题: 不创建类,怎么建立多线程?[已解决] [打印本页]

作者: 王金科    时间: 2012-8-17 20:08
标题: 不创建类,怎么建立多线程?[已解决]
本帖最后由 王金科 于 2012-8-23 15:36 编辑

视频里创建多个线程都是先创建一个类,让该类继承Thread或者实现Runnable
那么不创建一个类,怎么在主函数里创建多线程?


作者: 官文昌    时间: 2012-8-17 20:49
本帖最后由 官文昌 于 2012-8-17 20:52 编辑

让该类继承Thread或者实现Runnable
例如:

public class TestDemo extends Thread
{
        
        public void run()
        {
                while(true)
                System.out.println("run");
        }

        public static void main(String[] args)
        {
                TestDemo d=new TestDemo();
                d.start();
        }

}

public class TestDemo implements Runnable
{
       
        public void run()
        {
                while(true)
                System.out.println("run");
        }

        public static void main(String[] args)
        {
                TestDemo d=new TestDemo();
                Thread t1=new Thread(d);
                t1.start();
        }

}






作者: 田建    时间: 2012-8-17 23:10
直接用匿名内部类:
new Thread(){
public void run(){
实现代码;
}
};
或者:
new Runnable(){
public void run(){
实现代码;
}
};
另外JDK1.5的线程池:
Executors.newSingleThreadExecutor().execute(new Runnable(){
public void run(){
实现代码;
}
};
作者: 金龙    时间: 2012-8-17 23:54
不创建类就可以创建线程,你可以用1.5以后新出的线程池。Executors类有一个静态方法,newSingleThreadExecutor();  从线程池中挑选出一个空闲的线程,返回结果是ExecutorService类型,ExecutorService是个接口,可以多态接收,然后就可以操作线程了
作者: 赵俊杰    时间: 2012-8-18 00:05
本帖最后由 赵俊杰 于 2012-8-18 00:07 编辑

在主函数内:
public static void main(String[]  args)
{
        new Thread(){
        public void run()
       {
             while(true)
             {
                 System.out.println("手敲代码,未经测试,但大体是这样");
             }
       }
   }.start();
}
作者: 王金科    时间: 2012-8-19 00:09
官文昌 发表于 2012-8-17 20:49
让该类继承Thread或者实现Runnable
例如:

不是我要的,这种我会了
我说了不创建一个类,怎么在主函数里创建多线程?

作者: 王金科    时间: 2012-8-19 00:10
金龙 发表于 2012-8-17 23:54
不创建类就可以创建线程,你可以用1.5以后新出的线程池。Executors类有一个静态方法,newSingleThreadExecu ...

你这个好深奥,我还没学到哦,不过也谢谢了
作者: 王金科    时间: 2012-8-19 00:12
田建 发表于 2012-8-17 23:10
直接用匿名内部类:
new Thread(){
public void run(){

应该就是你这种了,多谢了哦,我试试看
作者: 王金科    时间: 2012-8-19 00:12
赵俊杰 发表于 2012-8-18 00:05
在主函数内:
public static void main(String[]  args)
{

这个可以用,我就是想这样




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2