Java创建线程的常用方法——简单实用

通常创建线程有三种方式:1.继承Thread;2.实现Runable接口;3.创建Callable和FutureTask创建线程;

有很多博客,看多了,但总觉得缺少点什么。

大概就是创建线程拿来就用的简单实用性吧

 

在通常的编程习惯中,创建线程的实用方法是:

1.匿名定义new Thread{ }实现其中的run方法


        new Thread(){

            public void run(){
               
                for(int i=0 ;i<16;i++){

                        //模拟网速慢,延时一秒,报错加try/catch

                        Thread.sleep(1000);
                    System.out.println("--------"+i);
                  
                }
               
            }


        }.start();

 

2.实例化Thread,加实现Runable接口。

        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {

                for(int i=0 ;i<16;i++){

                        //模拟网速慢,延时一秒,报错加try/catch

                        Thread.sleep(1000);
                    System.out.println("--------"+i);
                  
                }
            }
        });


    t1.start();

 

3.实际编程创建线程,基本就是以上两个套路,再把以上两个套路扩展一下就是

package test;

//继承Thread(),new 子类
public class ThreadTest extends Thread {

  //重写run方法,run方法的方法体就是现场执行体
  public void run() {
      for (int i=0;i < 10; i++) {
          System.out.print(getName() + " " + i+" ,");

      }
  }

  public static void main(String[] args) {
      for (int i = 0; i < 10; i++) {
          System.out.print(Thread.currentThread().getName() + " " + i+" ,");
          if (i == 5) {
              new ThreadTest().run();
              new ThreadTest().run();
          }
      }
  }
}

/*输出结果:main 0 ,main 1 ,main 2 ,main 3 ,main 4 ,main 5 ,Thread-0 0 ,Thread-0 1 ,Thread-0 2 ,
 * Thread-0 3 ,Thread-0 4 ,Thread-0 5 ,Thread-0 6 ,Thread-0 7 ,Thread-0 8 ,Thread-0 9 ,
 * Thread-1 0 ,Thread-1 1 ,Thread-1 2 ,Thread-1 3 ,Thread-1 4 ,Thread-1 5 ,Thread-1 6 ,
 * Thread-1 7 ,Thread-1 8 ,Thread-1 9 ,main 6 ,main 7 ,main 8 ,main 9 ,
 * 
 * 注意:此时两个线程是按线程顺序进行的
 * */
package test;

//实现Runnable接口
public class RunnableTest implements Runnable
{

    public void run()
    {
        for(int i = 0;i <10;i++)
        {
            System.out.print(Thread.currentThread().getName()+" "+i+" ,");
        }
    }
    public static void main(String[] args)
    {
        for(int i = 0;i < 10;i++)
        {
            System.out.print(Thread.currentThread().getName()+" "+i+" ,");
            if(i==5)
            {
                RunnableTest rtt = new RunnableTest();
                new Thread(rtt,"线程1").start();
                new Thread(rtt,"线程2").start();
            }
        }

    }

}

/*输出结果:main 0 ,main 1 ,main 2 ,main 3 ,main 4 ,main 5 ,main 6 ,main 7 ,main 8 ,
 * main 9 ,线程2 0 ,线程2 1 ,线程2 2 ,线程2 3 ,线程2 4 ,线程2 5 ,线程1 0 ,线程1 1 ,线程1 2 ,   线程1 3 ,线程1 4 ,
 * 线程1 5 ,线程1 6 ,线程1 7 ,线程2 6 ,线程1 8 ,线程2 7 ,线程1 9 ,线程2 8 ,线程2 9 ,
 * 
 * 注意:此时的两个线程是随机交替进行的
 * */
 

 

如果有帮到你,欢迎加入我的Java与Android逆向开发交流QQ群,一起交流学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值