Java中实现多线程的两种方式
Posted 十木禾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中实现多线程的两种方式相关的知识,希望对你有一定的参考价值。
Java中对于对于多线程的实现主要提供了两种方法
- 继承
Thread()
类 - 实现
Runnable
接口
接下来从这两个方面进行说明相关知识。
继承 Thread()
类
写一个类直接继承 Thread()
类,然后重写Thread()
类的run()
方法,调用其start()
方法即可启动线程。
package com.blog.article2;
/**
* @func 继承Thread实现多线程
* @author 张俊强~
* @time 2017/10/25 13:12
* */
public class ArticleOne
public static void main(String[] args)
MyThread mt1=new MyThread("线程一");
MyThread mt2=new MyThread("线程二");
mt1.start(); //启动线程
mt2.start();
/*---------------核心代码-------------------*/
class MyThread extends Thread
public String threadName;
public MyThread(String threadName)
this.threadName=threadName;
/*--------- 重写 run() 方法 ------------*/
public void run()
while (true)
try
Thread.sleep(1000);
catch (InterruptedException e)
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(threadName + "正在下载文件……");
/*---------------end-------------------*/
实现Runnable
接口
写一个类实现Runnable
接口,然后实现其run()
方法即可。
启动线程首先实例化一个Thread
,并传入自己的MyThread
实例即可,调用Strat()
方法即可。
package com.blog.article2;
public class ArticleTwo
public static void main(String[] args)
MyThread mt1=new MyThread("线程一");
MyThread mt2=new MyThread("线程二");
new Thread(mt1).start(); //启动线程
new Thread(mt2).start();
/*---------------核心代码-------------------*/
class MyThread implements Runnable
public String threadName;
public MyThread(String threadName)
this.threadName=threadName;
// 实现接口的抽象方法
public void run()
while (true)
try
Thread.sleep(1000);
catch (InterruptedException e)
e.printStackTrace();
System.out.println(threadName + "正在下载文件……");
/*---------------end-------------------*/
我们看一下Thread()
类的源码看看有什么发现没有。
public class Thread implements Runnable
//………………
private Runnable target;
//………………
public Thread(Runnable target)
init(null, target, "Thread-" + nextThreadNum(), 0);
//………………
@Override
public void run()
if (target != null)
target.run();
//………………
我们发现Thread()
类也是实现了Runnable
接口,并实现了run()
方法。
在Thread()
类中的run()
方法中,还是调用了我们写的MyThread
实例的run()
方法。
一般写到多线程都会有一个非常经典的窗口卖票的例子,将在下一篇博客中介绍。午安 ^_^ ~
以上是关于Java中实现多线程的两种方式的主要内容,如果未能解决你的问题,请参考以下文章