/*
    练习:创建两个分线程,其中一个线程遍历100以内的偶数,另一个线程遍历100以内的奇数
    *

    1. package com.atguigu.exercise1;
    2. /**
    3. * 练习:创建两个分线程,其中一个线程遍历100以内的偶数,另一个线程遍历100以内的奇数
    4. *
    5. * @author Dxkstart
    6. * @create 2021-05-05 21:38
    7. */
    8. public class ThreadDemo {
    9. public static void main(String[] args) {
    10. // //3.创建Thread类的子类的对象
    11. // MyThread1 my1 = new MyThread1();
    12. // MyThread2 my2 = new MyThread2();
    13. //
    14. // //4.通过此对象调用start()
    15. // my1.start();
    16. // my2.start();
    17. //开发中,简便的写法
    18. //创建Thread类的匿名子类的方式
    19. new Thread(){
    20. @Override
    21. public void run() {
    22. for (int i = 0; i < 100; i++) {
    23. if(i % 2 == 0){
    24. System.out.println(Thread.currentThread().getName() + ":" + i);
    25. }
    26. }
    27. }
    28. }.start();
    29. new Thread(){
    30. @Override
    31. public void run() {
    32. for (int i = 0; i < 100; i++) {
    33. if(i % 2 != 0){
    34. System.out.println(Thread.currentThread().getName() + ":" + i);
    35. }
    36. }
    37. }
    38. }.start();
    39. }
    40. }
    41. // 1.创建一个继承于Thread类的子类
    42. class MyThread1 extends Thread{
    43. //2.重写Thread类的run() --> 将此线程执行的操作声明在run()中
    44. @Override
    45. public void run() {
    46. for (int i = 0; i < 100; i++) {
    47. if(i % 2 == 0){
    48. System.out.println(Thread.currentThread().getName() + ":" + i);
    49. }
    50. }
    51. }
    52. }
    53. class MyThread2 extends Thread{
    54. //2.重写Thread类的run() --> 将此线程执行的操作声明在run()中
    55. @Override
    56. public void run() {
    57. for (int i = 0; i < 100; i++) {
    58. if(i % 2 != 0){
    59. System.out.println(Thread.currentThread().getName() + ":" + i);
    60. }
    61. }
    62. }
    63. }