多线程简单使用
@author 李思文
@createTime 2020/07/16
1.前言
最近在学习过程中,或多或少接触到很多关于多线程的知识,目前我在项目上接触的也比较少,所以此次特殊学习一下。
2.什么是线程
要说线程,首先要说一下进程,对于进程的理解可以打开电脑的任务管理器,如下图
每一个开启程序均为一个进程,而一个进程可以有至少一个线程,就比如说qq的话,打开一个QQ属于开启一个进程,而qq可以同时和很多人聊天,也可以和A聊天同时和B视频,这个就是两个线程,如下图所示
3.如何使用线程
使用线程一共有两种方法
- 继承
Thread
类重写run()方法;
代码示例
/**
* 多线程测试类--继承`Thread`类重写run()方法
*
* @author: lisiwen
* @date: 2020/7/16 14:34
**/
public class MyThreadTest extends Thread {
private int i = 0;
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "-------" + (++i));
}
}
- 实现
Runnable
接口并实现run()方法;
代码示例
/**
* 多线程测试类--实现`Runnable`接口并实现run()方法
*
* @author: lisiwen
* @date: 2020/7/16 14:34
**/
public class MyThreadRunableTest implements Runnable {
private int i;
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "-------" + (++i));
}
}
然后写个方法进行启动测试
/**
* @author: lisiwen
* @date: 2020/7/16 17:05
**/
public class ThreadRunTest {
public static void main(String[] args) {
MyThreadTest thread = new MyThreadTest();
MyThreadRunableTest threadRunableTest=new MyThreadRunableTest();
Thread a=new Thread(thread,"A");
Thread b=new Thread(thread,"B");
Thread c=new Thread(threadRunableTest,"C");
Thread d=new Thread(threadRunableTest,"D");
a.start();
b.start();
c.start();
d.start();
}
}
控制台输出
thread--A-------1
threadRunableTest--D-------2
threadRunableTest--C-------1
thread--B-------2