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();方法获取线程名称

原文地址:https://www.cnblogs.com/WarBlog/p/12068986.html