zoukankan      html  css  js  c++  java
  • 多线程的创建方式一:继承于Thread类

    * 多线程的创建,方式一:继承于Thread类
    * 1. 创建一个继承于Thread类的子类
    * 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中
    * 3. 创建Thread类的子类的对象
    * 4. 通过此对象调用start()
    * <p>
    * 例子:遍历100以内的所有的偶数
    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();
            //问题一:我们不能通过直接调用run()的方式启动线程。
    //        t1.run();
    
            //问题二:再启动一个线程,遍历100以内的偶数。不可以还让已经start()的线程去执行。会报IllegalThreadStateException
    //        t1.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()************");
                }
            }
        }
    
    }

     
    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    读后感
    周总结(五)【2019.7.292019.8.4】
    周总结(六)【2019.8.52019.8.11】
    “教室派”APP使用体验
    ios的内存管理差异和iso6与以前内存管理的兼容
    UITextView 和UILable 设置行间距
    IOS 各种问题收藏贴
    __bridge,__bridge_transfer和__bridge_retained
    键盘事件的处理
    JSONKit 使用示例
  • 原文地址:https://www.cnblogs.com/CCTVCHCH/p/14641518.html
Copyright © 2011-2022 走看看