拉勾教育Java并发编程线程基础
1. 线程的创建
首先我们来复习我们学习 java 时接触的线程创建,这也是面试的时候喜欢问的,有人说两种也有人说三种四种等等,其实我们不能去死记硬背,而应该深入理解其中的原理,当我们理解后就会发现所谓的创建线程实质都是一样的,在我们面试的过程中如果我们能从本质出发回答这样的问题,那么相信一定是个加分项!好了我们不多说了,开始今天的 code 之路
1.1 **继承 Thread 类创建线程 **
**
• 这是我们常见的创建线程的方式,通过继承 Thread 类来重写 run 方法,
代码如下:
/**
* 线程类
* url: www.i-code.online
* @author: anonyStar
* @time: 2020/9/24 18:55
*/
public class ThreadDemo extends Thread {
@Override
public void run() {
//线程执行内容
while (true){
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("ThredDemo 线程正在执行,线程名:"+ Thread.currentThread().getName());
}
}
}
测试方法:
@Test
public void thread01(){
Thread thread = new ThreadDemo();
thread.setName("线程-1 ");
thread.start();
while (true){
System.out.println("这是main主线程:" + Thread.currentThread().getName());
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
结果:
继承 Thread 的线程创建简单,启动时直接调用 start 方法,而不是直接调用 run 方法。直接调用 run 等于调用普通方法,并不是启动线程
首先我们来复习我们学习 java 时接触的线程创建,这也是面试的时候喜欢问的,有人说两种也有人说三种四种等等,其实我们不能去死记硬背,而应该深入理解其中的原理,当我们理解后就会发现所谓的创建线程实质都是一样的,在我们面试的过程中如果我们能从本质出发回答这样的问题,那么相信一定是个加分项!好了我们不多说了,开始今天的 code 之路
1.1 **继承 Thread 类创建线程 **
**
• 这是我们常见的创建线程的方式,通过继承 Thread 类来重写 run 方法,
代码如下:
/**
* 线程类
* url: www.i-code.online
* @author: anonyStar
* @time: 2020/9/24 18:55
*/
public class ThreadDemo extends Thread {
@Override
public void run() {
//线程执行内容
while (true){
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("ThredDemo 线程正在执行,线程名:"+ Thread.currentThread().getName());
}
}
}
测试方法:
@Test
public void thread01(){
Thread thread = new ThreadDemo();
thread.setName("线程-1 ");
thread.start();
while (true){
System.out.println("这是main主线程:" + Thread.currentThread().getName());
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
结果:
继承 Thread 的线程创建简单,启动时直接调用 start 方法,而不是直接调用 run 方法。直接调用 run 等于调用普通方法,并不是启动线程