前言:简单介绍下,线程是进程的一部分(对进程不了解的同学可以自行查阅相关内容),一个进程中可以包含多个线程,多个线程并发执行,可以提高对cpu的使用率,从尔提升效率,java中多线程是比较重要的知识点,掌握多线程是很有必要的,本文介绍多线程创建的两种方式。如下:
方式一:继承自Thread(新建一个类继承Thread)
重写Thread中的run()方法,run()方法是线程的线程体,是线程运行所执行的方法体。当线程调用start()方法后,run()方法即被执行。
/**
* 多线程方式1:继承thread
*/
public class ThreadDemo1 extends Thread{
@Override
public void run() {
System.out.println(“...线程运行的逻辑代码...”);
}
}
使用测试:
public class Test1 {
public static void main(String[] args) {
//第一种方式创建线程
Thread t1=new ThreadDemo1();
t1.start();//不能通过t1.run()方式启动线程,通过start方式启动,jvm会去调用run线程体
Thread t2=new ThreadDemo1();
t2.start();
}
}
方式二:实现Runnable接口
并实现该接口的run()方法。使用:/** * 多线程方式2:实现Runnable接口 * 作用:java是单继承的,如果一个类已经继承其他类(非Thread),想要实现多线程,可以使用实现Runable接口方式。 */ public class ThreadDemo2 implements Runnable { @Override public void run() { System.out.println(“...线程运行的逻辑代码...”); }}
备注:两种方式都可以实现java的多线程,必须使用start()方法启动线程,当调用start()方法后,jvm会负责调用run()方法,不能通过直接调用run()方法。由于java是单继承的,所以一个类如过已经继承了非Thread类,想要实现多线程的话,可以使用第二种实现接口的方式。创建线程使用以上两种方式即可,赶紧书写自己的demo吧,是不是很简单,但是多线程使用并非如此简单,我会在后续的博客中继续研究java的多线程。此博客用于学习过程中的知识总结,希望给您带来帮助。public class Test2 { public static void main(String[] args) { //第二种方式创建线程 Thread tr1 = new Thread(new ThreadDemo2()); tr1.start();//不能通过t1.run()方式启动线程,通过start方式启动,jvm会去调用run线程体 Thread tr2 = new Thread(new ThreadDemo2()); tr2.start(); } }
下篇中会介绍多线程中数据共享安全问题,线程的同步。
----------------------------------------------------------------学海无涯分类:java