线程与任务(Thread与Runnable)


实现runnable接口的类都是任务类,它在run()内部定义任务逻辑。
把任务类对象作为参数创建线程实例,线程就会执行任务。

MyRunnable mr = new MyRunnable();

Thread t = new Thread(mr);

//启动

         t.start();



timer是线程,而timertask是任务。
创建一个timer,timer内部会自动创建一个线程。

executors是executor的工厂类。
executor是线程池的执行器。当有大量短小并发的任务时,可以在线程池中执行。


First thing to understand is that the Thread class implements Runnable, so you can use a Thread instance anywhere you can use Runnable. For example,

new Thread(new Thread()); // won't do anything, but just to demonstrate

When you create a Thread with

new Thread(someRunnable);

and start it, the thread calls the given Runnable instance's run() method. If that Runnableinstance happens to also be an instance of Thread, so be it. That doesn't change anything.

When you create a custom thread like

new ExtendsThread();

and start it, it calls run() on itself.

When you extends Thread class, each of your thread creates unique object and associate with it. where as

When you implement Runnable, it shares the same object to multiple threads..

转载自:stackoverflow  Java-Thread Vs Runnable


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值