zoukankan      html  css  js  c++  java
  • 线程编程的两种方法

    写一个类,继承Thread类,覆盖Thread类中继承来的run()方法,这样就写好了自定义的线程类。

    继承java.lang.Thread类:

    
        class MyThread extends Thread{
    
            public void run(){        
           //覆盖run(),线程体方法,自身其实就是普通的方法
    
                .......
    
            }
    
        }
    

    启动线程:

    
        public class TestThread{
    
            public static void main(){
    
                Thread t1=new Mythread();
    
                T1.start();        
               //调用start()来启动线程,线程启动方法,向线程调度器说明当前线程已经准备好了,是一种可运行状态
    
            }
    
        }
    

    写一个类,实现Runable接口,实现其中的run()方法。这种方法写好的类的对象需要作为线程类创建对象时构造方法的参数。

    实现java.lang.Runnable接口:

    
        Class MyThread  implements Runnable{
    
            public void run(){
    
            }
    
        }
    

    启动线程:

    
        public class TestThread{
    
            public static void main(){
    
                Runnable myThread = new MyThread();
    
                Thread t = new Thread(myThread);
    
                t.start();
    
            }
    
        }
    

    从java5开始,还有如下一些线程池创建多线程的方式:

    
    ExecutorService pool = Executors.newFixedThreadPool(3)
    
    for(int i=0;i<10;i++){
    
      pool.execute(new Runable(){
        public void run(){
    
        }
      });
    
    }
    
    Executors.newCachedThreadPool().execute(new Runable(){
        public void run(){
    
        }
    });
    
    Executors.newSingleThreadExecutor().execute(new Runable(){
        public void run(){
    
        }
    });
  • 相关阅读:
    二叉平衡树
    红黑树
    [leetcode] LCP 比赛
    二叉搜索树
    面向对象的二叉树的实现
    二叉树的序列化与反序列化
    [leetcode] 基本计算器
    【pandas】玩转一行拆多行,多行并一行(分分合合你说了算)
    【VBA】数据溢出与解决
    【VBA】criterial 未找到命名参数
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9733738.html
Copyright © 2011-2022 走看看