• 多线程


    方法一:

    /**
    * 如何创建多线程
    * 1.定义一个类继承Thread类
    * 2.覆盖Thread类中的run方法
    * 3.直接创建Thread的子类对象创建线程
    * 4.调用start方法开启线程并调用线程的任务run方法执行 
    * @author 罗摩衔那
    *
    */
    class Demo6 extends Thread{
    private String name;
    Demo6(String name){
    super(name);//调用的是父类的Thread(String name)方法,获取的是线程名
    //this.name=name;
    }
    public void run() {
    show();
    }
    
    public void show() {
    for (int i = 0; i < 10; i++) {
    //可以通过Thread的getName获取线程的名称 Thread-(从0开始)
    //获取当前线程的名字
    System.out.println(name+"....i"+i+" name:"+Thread.currentThread().getName());
    }
    }
    
    }
    public class Demo5 {
    public static void main(String[] args) {
    Demo6 d1=new Demo6("小黑");
    Demo6 d2=new Demo6("heima");
    d1.start();//开启线程线程
    d2.start();
    System.out.println("over...."+Thread.currentThread().getName());
    }
    }
    

      

    方法二:

    /**
    * 创建线程的第二种方式:实现Runnable接口
    * 
    * 1.定义类实现Runnable接口
    * 2.覆盖接口中的run方法,将线程任务代码封装在run方法中
    * 3.通过Thread类创建线程对象,并将Runnable接口的对象作为Thread类的构造函数的参数进行传递
    * 为什么? 因为线程的任务都封装在Runnable接口子类对象的run方法中
    * 所以要在线程对象创建时就必须明确要运行的任务
    * 
    * 4.调用线程对象的start()方法
    * @author 罗摩衔那
    *
    */
    class PiKaQiu implements Runnable{//准备扩展PiKaQiu类的功能,让其中的内容可以作为线程的任务执行
    //通过接口的形式完成
    public void run() {
    show();
    }
    
    public void show()
    {
    for(int i=0;i<10;i++) 
    {
    System.out.println(Thread.currentThread().getName()+"...."+i);
    }
    }
    }
    
    public class Thead_Implement {
    public static void main(String[] args) 
    {
    PiKaQiu p=new PiKaQiu();
    /**
    * public Threa(Runnable target)
    * 分配新的Thread对象.
    * 
    * Thread pkq=new PiKaQiu();拥有了run方法    
    */
    Thread pkq=new Thread(p);
    Thread pkq1=new Thread(p);
    pkq.start();
    pkq1.start();
    System.out.println("aa");
    }
    }
  • 相关阅读:
    关于Git的一些常规操作
    .Net 常用ORM框架对比:EF Core、FreeSql、SqlSuger (下篇)
    Myeclipse打开许多JSP文件或者js文件之后非常卡-------的解决办法
    单点登录常用生成token的操作-----UUID.randomUUID().toString() 简介
    如何使用时间复杂度和空间复杂度来区分算法的效率?
    自定义注解的简单使用
    企业中常用的Git和Svn比较。
    框架中常见的注解分析
    处理大数据流常用的三种Apache框架:Storm、Spark和Samza。(主要介绍Storm)
    养生食谱
  • 原文地址:https://www.cnblogs.com/zjm1999/p/9839061.html
Copyright © 2020-2023  润新知