zoukankan      html  css  js  c++  java
  • 【常用API】之Runnable实现多线程

    Runnable实现多线程,与Thread多线程的区别在于,Thread是继承Thread父类,而Runnable是接口,需要实现Runnable接口,但是两者都是需要重写run()方法,在执行任务之后,都无法获取执行结果的。

    Runnable接口实现多线程

      1 //主程序,里面开启运行多个线程
      2 public class _Runnable多线程{
      3     public static void main(String[] args){
      4 
      5      //第一步:多态,声明接口,实例化实现类,得到对象
      6      Thread1 r1 = new Thread1();
      7      Thread2 r2 = new Thread2();
      8      Thread3 r3 = new Thread3();
      9 
     10      //第二步:创建线程对象,将实现类对象放入线程对象,实现Runnable重写方法后,最终还是需要创建Thread类运行
     11      Thread t1  = new Thread(r1);
     12      Thread t2  = new Thread(r2);
     13      Thread t3  =  new Thread(r3);
     14 
     15     //第三步:调用start()方法;
     16     t1.start();
     17     t2.start();
     18     t3.start();
     19 
     20    } 
     21 }
     22 
     23 
     24 
     25 
     26 
     27 //=======================================
     28 //java提供了一个 Runnable接口,
     29 //里面有一个抽象方法 run
     30 //1、自定义类,实现Runnable接口
     31 //2、重写run方法
     32 //3、实例化对象
     33 //4、调用start方法
     34 
     35 // 【显示接口,只是一个接口的实现类】
     36 //创建几个线程
     37 
     38 //线程1
     39 class Thread1 implements Runnable{
     40      
     41      //重写run方法
     42     @Override
     43     public void run(){
     44       for(int i = 1; i<=5; i++){
     45          //休眠
     46          try{
     47               Thread.currentThread().sleep(100);
     48          }catch(InterruptedException e){
     49                      System.out.println("当前操作系统禁止自定义线程休 
     50                       眠!");
     51               }
     52           //结果
     53          System.out.println("t1->"+i);
     54           }
     55 
     56       }
     57 
     58  }
     59 
     60 
     61 
     62 //线程2
     63 class Thread2 implements Runnable{
     64 
     65     @Override
     66     public void run(){
     67       for(int i = 1; i<=5; i++){
     68          //休眠
     69          try{
     70               Thread.currentThread().sleep(100);
     71          }catch(InterruptedException e){
     72                      System.out.println("当前操作系统禁止自定义线程休 
     73                       眠!");
     74               }
     75           //结果
     76          System.out.println("t2->"+i);
     77           }
     78 
     79       }
     80 
     81  }
     82 
     83 
     84 //线程3
     85 class Thread3 implements Runnable{
     86 
     87     @Override
     88     public void run(){
     89       for(int i = 1; i<=5; i++){
     90          //休眠
     91          try{
     92               Thread.currentThread().sleep(100);
     93          }catch(InterruptedException e){
     94                      System.out.println("当前操作系统禁止自定义线程休 
     95                       眠!");
     96               }
     97           //结果
     98          System.out.println("t3->"+i);
     99           }
    100 
    101       }
    102 
    103  }
    104 
    105           
  • 相关阅读:
    赠与今年的大学毕业生(胡适先生30年代的文章,仍不过时)
    统一管理磁盘上的开源代码
    生成sqlite导入库的做法
    提高二维矢量绘图效率之一般做法
    boost库命名规则的优点
    如何把腾讯微博挂到CSDN博客上
    fatal error C1902 Program database manager mismatch; please check your installation问题的解决
    智能指针变量做函数参数的一个值得注意的地方
    PC会消亡吗?
    软件制造问题的微软答案
  • 原文地址:https://www.cnblogs.com/jiarenanhao/p/14118685.html
Copyright © 2011-2022 走看看