您的位置:首页 > 编程语言 > Java开发

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()方法。
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>}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐