• 创建多线程的方式


    什么是进程?进程就是正在运行的应用程序,进程是线程的集合体。 什么是线程?线程就是一条执行路径,一个独立的执行单元。
    什么是多线程?多线程就是用来提高程序效率的
    创建线程的几种方式 
      1、使用继承Thread类的方式
      2、使用实现runable接口的方式
      3、使用匿名内部类方式
      4、实现callable接口的方式
      5、使用线程池的方式

    方式一:继承Thread,重写run方法

    package ThreadDemo;
    
    public class ThreadDemo01 {
    
       
        public static void main(String[] args) {
    
            // 1.怎么调用线程
            CreateThreadDemo01 t1 = new CreateThreadDemo01();
            // 2.启动线程
            t1.start();
            for (int i = 0; i < 30; i++) {
                System.out.println("main,i:" + i);
            }
        }
    
    }
    
    class CreateThreadDemo01 extends Thread {
    
        /**
         * run方法就是线程需要执行的任务或者执行的代码
         */
        public void run() {
            for (int i = 0; i < 30; i++) {
                System.out.println("run,i:" + i);
            }
        }
    }

    方式二:实现Runnable接口,实现run方法

    package ThreadDemo;
    
    public class ThreadDemo02 {
    
        /**
         * 
         * 什么是进程?进程就是正在运行的应用程序,进程是线程的集合体。 什么是线程?线程就是一条执行路径,一个独立的执行单元。
         * 什么是多线程?多线程就是用来提高程序效率的
         * 
         * 
         * 创建线程的几种方式 1、使用继承Thread类的方式 2、使用实现runable接口的方式 3、使用匿名内部类方式
         * 4、实现callable接口的方式 5、使用线程池的方式
         */
        public static void main(String[] args) {
            
            CreateThreadDemo02 t1 = new CreateThreadDemo02();
            Thread thread = new Thread(t1);
            thread.start();
            for (int i = 0; i < 30; i++) {
                System.out.println("主线程i:" + i);
            }
            
        }
    
    }
    
    class CreateThreadDemo02 implements Runnable {
    
        public void run() {
            for (int i = 0; i < 30; i++) {
                System.out.println("子线程run,i:" + i);
            }
        }
    }

    方式三:匿名内部类

    package ThreadDemo;
    
    public class ThreadDemo03 {
    
        public static void main(String[] args) {
            
            Thread t1 = new Thread(new Runnable(){
                
                public void run(){
                    for (int i = 0; i < 30; i++) {
                        System.out.println("子线程,i:" + i);
                    }
                }
            });
            
            t1.start();
            for (int i = 0; i < 30; i++) {
                System.out.println("主线程i:" + i);
            }
            
        }
    
    }

    方式四:实现Callable接口

    你还有很多未完成的梦,你有什么理由停下脚步
  • 相关阅读:
    附上我的Github源码
    Java Automic包下的AtomicInteger
    思维题:四个小伙伴过桥问题
    TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗
    输入www.baidu.com会发生什么
    外网IP和内网IP区别
    Queue接口分析:add和offer区别,remove和poll方法到底啥区别
    手工创建一个线程池
    volatile关键字
    牛客网 买手串
  • 原文地址:https://www.cnblogs.com/quanziheng/p/13411889.html
Copyright © 2020-2023  润新知