zoukankan      html  css  js  c++  java
  • 创建多线程的方式

    什么是进程?进程就是正在运行的应用程序,进程是线程的集合体。 什么是线程?线程就是一条执行路径,一个独立的执行单元。
    什么是多线程?多线程就是用来提高程序效率的
    创建线程的几种方式 
      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接口

    你还有很多未完成的梦,你有什么理由停下脚步
  • 相关阅读:
    压缩感知中的lp球:p范数最优化为什么总会导致一个稀疏的解的原因
    有限等距性质RIP
    P问题、NP问题、NPC问题
    浅读K-means
    Python初学——pickle & set
    Python初学——窗口视窗Tkinter
    Python初学——多进程Multiprocessing
    暴力【bzoj2208】: [Jsoi2010]连通数
    打表数学【bzoj2173】: 整数的lqp拆分
    最短路【bzoj1726】: [Usaco2006 Nov]Roadblocks第二短路
  • 原文地址:https://www.cnblogs.com/quanziheng/p/13411889.html
Copyright © 2011-2022 走看看