zoukankan      html  css  js  c++  java
  • 创建线程方法

    线程:是程序执行流的最小单元,包括就绪、阻塞和运行三种基本状态。

    1. 继承 Thread 类,然后调用 start 方法。

    package com.oracle.demo01;
    
    public class MyThread  extends Thread{
        public void run(){
    //        线程
            System.out.println("线程名"+getName());
        for(int i=0;i<20;i++){
            System.out.println("MyThread-"+i);
        }
    }
    }
    package com.oracle.demo01;
    
    import java.util.concurrent.ThreadPoolExecutor;
    
    public class demo01 {
        
        public static void main(String[] args) {
            Thread th=Thread.currentThread();
            System.out.println(th.getName());
    ////        获取当前线程对象的名称
    //        Thread.currentThread().getName();
    //        创建新线程*(放在上面)
            MyThread mythread=new MyThread();
    //        开启线程、
            mythread.start();
            for(int i=0;i<20;i++){
                System.out.println("main-"+i);
            }
            
        }
    
    }

    2.实现 Runnable 接口的 run 方法, 然后再用 Thread 类包裹后,调用 start 方法。

    package com.oracle.demo02;
    
    public class MyRunnable implements Runnable {
    
        @Override
        public void run() {
    for(int i=0;i<20;i++){
        System.out.println("thread-0"+i);
    }        
        }
    
    }
    package com.oracle.demo02;

    public class demo01 {
        public static void main(String[] args) {
    //        创建线程任务对象
            MyRunnable mr=new MyRunnable();
    //        创建thread对象
            Thread th=new Thread(mr);
            th.start();
            for(int i=0;i<20;i++){
                System.out.println("main-"+i);
            }
            
        }

    3.线程池

    package com.oracle.demo03;
    
    public class MyRun implements Runnable{
        public void run(){
            String name=Thread.currentThread().getName();
            for(int i=0;i<20;i++){
                System.out.println(name+i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    
    }
    package com.oracle.demo01;
    
    public class MyThread  extends Thread{
        public void run(){
    //        线程
            System.out.println("线程名"+getName());
        for(int i=0;i<20;i++){
            System.out.println("MyThread-"+i);
        }
    }
    }
    public class demo02 {
    public static void main(String[] args) {
    //    用线程池的方法完成线程任务
    //    从线程池工厂中获取线程池对象
        ExecutorService es=Executors.newFixedThreadPool(2);
    //    创建线程任务对象
        MyRun mr=new MyRun();
    //    让线程池自主选择一条线程执行线程任务
        es.submit(mr);
        es.submit(mr);
        es.submit(mr);
    
    //    关闭线程池
        es.shutdown();
    }
    }
  • 相关阅读:
    Android中传感器的基本概念
    Android攻城狮 multi-touch多点触摸
    Android攻城狮SurfaceView
    Android攻城狮Tab类型
    Android攻城狮使用SubMenu创建子菜单
    Android攻城狮认识ContextMenu
    Android攻城狮OptionsMenu
    Android攻城狮Notification实现状态通知栏
    虹软人脸识别SDK(java+linux/window)
    人脸识别ArcFace C#DEMO 开发应用全过程
  • 原文地址:https://www.cnblogs.com/-lwl/p/11100908.html
Copyright © 2011-2022 走看看