继承Thread 实现输出100以内的偶数
package com.atguigu.java;
/**
* @author LunarYouI
* @create 2021-03-16 19:40
* <p>
* 多线程的创建,方式一:继承Thread类
* 1、创建一个继承于Thread类的子类
* 2、重写Thread类的run()
* 3、创建Thread类的子类的对象
* 4、通过此对象调用start()
*
* 例子:遍历100以内的所有的偶数
*/
//1、创建一个继承于Thread类的子类
class MyThread extends Thread {
//2、重写Thread类的run()
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
}
public class ThreadTest {
public static void main(String[] args) {
//3、创建Thread类的子类的对象
MyThread t1 = new MyThread();
//4、通过此对象调用start()——Ⅰ:启动当前线程 Ⅱ:调用当前线程的run()
t1.start();
/*
如果想要再启动一个线程来遍历100以内的偶数,不可以还让已经start()的线程去执行,会报错——IllegalThreadStateException()
如若再启动一个线程,我们需要重新创建一个线程的对象去start
*/
MyThread t2 = new MyThread();
t2.start();
//如下操作仍然是在main线程中执行的
for (int i = 0; i < 100; i++) {
if(i % 2 != 0){
System.out.println(Thread.currentThread().getName()+":"+i+"**************main()**************");
}
}
}
}
结果
练习:创建两个分线程,其中一个线程遍历100以内的偶数,另外一个线程遍历100以内的奇数(两种方法)
package com.atguigu.exer;
/**
* @author LunarYouI
* @create 2021-03-16 20:09
*
* 练习:创建两个分线程,其中一个线程遍历100以内的偶数,另外一个线程遍历100以内的奇数
*/
public class ThreadDemo {
public static void main(String[] args) {
// MyThread1 m1 = new MyThread1();
// MyThread2 m2 = new MyThread2();
//
// m1.start();
// m2.start();
//创建Thread类的匿名子类的方式。当我们调用start()的时候它就调Thread里的run,而Thread里的run被覆盖了,所以我们调用的就是匿名子类里的run
//偶数
new Thread(){
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName()+"偶数 :"+i);
}
}
}
}.start();
//奇数
new Thread(){
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i % 2 != 0){
System.out.println(Thread.currentThread().getName()+"奇数 :"+i);
}
}
}
}.start();
}
}
//遍历偶数
class MyThread1 extends Thread{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName()+"偶数 :"+i);
}
}
}
}
//遍历奇数
class MyThread2 extends Thread{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i % 2 != 0){
System.out.println(Thread.currentThread().getName()+"奇数 :"+i);
}
}
}
}
结果