zoukankan      html  css  js  c++  java
  • Java学习之多线程(定义)

    进程:正在运行中的程序
    线程:负责执行程序的控制单元(执行路径)
    一个进程中可以有多个执行路径,称之为多线程
    一个进程中至少要有一个线程

    创建新执行线程有两种方式

    一、继承Thread类
    步骤:
    1、定义一个类继承Thread类
    2、覆盖Thread类中的run方法(run方法中就是线程要执行的任务代码)
    3、创建Thread子类对象
    4、调用start方法开启线程,执行run方法

     1 class Demo extends Thread
     2 {
     3     private String name;
     4     Demo(String name)
     5     {
     6         this.name = name;
     7     }
     8     
     9     void run()
    10     {
    11         for(x=0;x<9;x++)
    12         {
    13             System.out.println(name+"----"+x+"当前执行run方法的线程名称"+Thread.currentThread().getName());
    14         }
    15     }
    16 }
    17 
    18 class ThreadDemo
    19 {
    20     public static void main(String[] args)
    21     {
    22         Demo d1=new Demo("zhangsan");
    23         
    24         Demo d2=new Demo("lisi");
    25         d1.start();
    26         d2.start();
    27         
    28         System.out.println("当前执行run方法的线程名称"+Thread.currentThread().getName());
    29     }
    30 }

    问题:这个Demo类必须继承Thread类,那如果Demo 有父级(class Demo extends Parent)的话,是不是就无法再继承类,那么就想能不能实现接口

    二、实现Runnable接口(开发中较为常用)
    步骤:
    1、定义一个类实现Runnable接口
    2、重写接口中的run方法(run方法中就是线程要执行的任务代码)
    3、通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数参数进行传递
    4、调用线程对象的start方法开启线程,执行run方法

     1 class Demo implements Runnable
     2 {
     3     private String name;
     4     Demo(String name)
     5     {
     6         this.name = name;
     7     }
     8     
     9     public void run()
    10     {
    11         for(x=0;x<9;x++)
    12         {
    13             System.out.println(name+"----"+x+"当前执行run方法的线程名称"+Thread.currentThread().getName());
    14         }
    15     }
    16 }
    17 
    18 class ThreadDemo
    19 {
    20     public static void main(String[] args)
    21     {
    22         new Thread(new Demo("wangwu")).start();
    23         new Thread(new Demo("zhaoliu")).start();
    24         System.out.println("当前执行run方法的线程名称"+Thread.currentThread().getName());
    25     }
    26 }

    Thread.currentThread();获取当前运行线程
    Thread.currentThread().getName();方法获取线程名称

  • 相关阅读:
    题目:心灵的抚慰
    间谍网络
    tarjan算法模版
    rect
    学校食堂
    题目:自然的雪糕
    Winform里众多上下文菜单的控制要怎么做?
    ubuntu更新列表
    瞧,Silverlight是如何被部署到客户机的
    盖茨十条成功箴言 值得一生铭记
  • 原文地址:https://www.cnblogs.com/WarBlog/p/12068986.html
Copyright © 2011-2022 走看看