A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王金科 中级黑马   /  2012-8-17 20:08  /  2405 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王金科 于 2012-8-23 15:36 编辑

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

8 个回复

倒序浏览
本帖最后由 官文昌 于 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();
        }

}





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

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

不是我要的,这种我会了
我说了不创建一个类,怎么在主函数里创建多线程?
回复 使用道具 举报
金龙 发表于 2012-8-17 23:54
不创建类就可以创建线程,你可以用1.5以后新出的线程池。Executors类有一个静态方法,newSingleThreadExecu ...

你这个好深奥,我还没学到哦,不过也谢谢了
回复 使用道具 举报
田建 发表于 2012-8-17 23:10
直接用匿名内部类:
new Thread(){
public void run(){

应该就是你这种了,多谢了哦,我试试看
回复 使用道具 举报
赵俊杰 发表于 2012-8-18 00:05
在主函数内:
public static void main(String[]  args)
{

这个可以用,我就是想这样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马