java有几种方法可以实现一个线程?用什么关键字修饰同步方法?
2015-03-12 22:37
1046 查看
java多线程实现方法主要有3种:继承Thread类、实现Runnable接口和使用ExecutorService、callable、future实现有返回结果的多线程。其中前2方式线程执行完后都没有返回值,只有最后一种有返回值。
继承Thread类启动线程的唯一方法是通过Thread类的start()实例方法。start()方法是一种native方法,它将启动一个新线程并执行run方法。这种方法通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。
通过实现Runnable接口实现多线程。如果自己的类已经extends了另一个类,就无法直接extends Thread类,只能通过实践Runnable接口实现多线程。如下
继承Thread类启动线程的唯一方法是通过Thread类的start()实例方法。start()方法是一种native方法,它将启动一个新线程并执行run方法。这种方法通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。
public class MyThread extends Thread{ public void run(){ System.out.println("myThread start..."); } }
通过实现Runnable接口实现多线程。如果自己的类已经extends了另一个类,就无法直接extends Thread类,只能通过实践Runnable接口实现多线程。如下
public class MyThread extends OtherClss implements Runnable{ public void run(){ System.out.println("myThread start..."); } }启动时先实例化Thread类,然后将自己的MyThread实例传入,
Thread thread = new Thread(new MyThread); thread.start();<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">事实上当传入一个Runnable target参数给Thread后,Thread的run()方法会调用target.run(),参考jdk源码</span>
<span style="white-space:pre"> </span>public void run (){ <span style="white-space:pre"> </span>if(target != null){ <span style="white-space:pre"> </span>target.run(); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>}
相关文章推荐
- java中有几种方法可以实现一个线程?用什么关键字修饰同步
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法 stop()和suspend()方法为何不推荐使用?
- java基础问题---java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
- 【Java面试题】23 java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- java开发线程篇1:java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- Java 有几程方法可以实现一个线程?用什么关键字修饰同步?stop()和suspend()为什么不推荐使用?
- Java中有几种方法实现一个线程,用什么关键字修饰同步方法?stop()和suspend()方法为何不提倡使用?
- java 中有几种方法可以实现一个线程? 用什么关键字修 饰同步方法? stop()和 suspend()方法为何不推荐使用?
- java中有几种方法可以实现一个线程?
- Java中有几种方法可以实现一个线程
- java中有几种方法可以实现一个线程
- java中有几种方法可以实现一个线程
- 【Java面试题】26 多线程有几种实现方法?同步有几种实现方法? 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
- ”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
- java基础问题----java中有几种方法可以实现一个线
- java多线程有几种实现方法?线程之间如何同步
- java多线程有几种实现方法?线程之间如何同步
- static关键字是什么意思?java中是否可以覆盖一个private方法或者static方法