Java多线程(1)——多线程创建(传智播客毕老师视频讲解)

本文详细介绍了进程与线程的概念,包括两者的定义及其特点。此外,还深入探讨了创建线程的三种方法:继承Thread类、实现Runnable接口以及两者的区别。最后,介绍了如何获取线程对象及名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、进程与线程

进程:是一个正在执行的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。

线程:就是进程中一个独立的控制单元。线程在控制着进程的执行。

    特性:随机性。谁抢到谁执行,至于执行多长,cpu说了算。

一个进程中至少有一个线程。

2、创建线程方式

2.1、继承Thread类创建线程:

步骤:2.1.1、定义类继承Thread;

            2.1.2、复写Thread类中的run方法;

            2.1.3、调用线程的start方法,该方法两个作用:启动线程,调用run方法。

public class CreateXian extends Thread
{
	static int i;
	public void run()
	{
		for(i=0;i<10;i++)
		{
			System.out.println("......CreateXian.....");
		}
	}
}

public class Xian1 
{
	static int i;
	public static void main(String[] args) 
	{
		CreateXian x=new CreateXian();
		x.start();
		for(i=0;i<10;i++)
		{
			System.out.println("...main......");
		}
	}
}

运行结果如下:

2.2、实现Runable接口

步骤:2.2.1、定义类实现Runnable接口;

    2.2.2、覆盖Runnable接口中的run方法;

    2.2.3、通过Thread类建立线程对象;

    2.2.4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数;

因为,自定义的run方法所属的对象是Runnable接口的子类对象,所以要让线程去执行指定对象run方法,就必须明确run方法所属对象。

    2.2.5、调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。

public class RunanbleDemo implements Runnable
{
	int i=100;
	public  void run()
	{
		
		while(true)
		{
			if(i>0)
			{
				//try{Thread.sleep(10);}catch(Exception e){}
				System.out.println("...."+Thread.currentThread().getName()+"...."+i--);
			}
		}
	}
}
public class Xian1 
{
	static int i;
	public static void main(String[] args) 
	{
		RunanbleDemo t=new RunanbleDemo();
		Thread t1=new Thread(t);
		Thread t2=new Thread(t);
		t1.start();
		t2.start();
		for(i=0;i<5;i++)
		{
			System.out.println("...main......"+Thread.currentThread().getName());
		}
	}
}
运行结果如下:


从结果中可以看出,线程0和线程1交替运行,但是10后直接为8,最后又为9,其实这是错误的,下一篇博文介绍多线程的安全机制。

2.3、实现方式与继承方式区别

实现方式好处:避免了单继承的局限性。在定义线程时,建议使用实现方式。

继承Thread:线程代码存放在Thread子类的run方法中;

实现Runnable:线程代码存放在接口的子类run方法中。

3、获取线程对象及名称

线程都有自己默认的名称:Thread-编号,编号从0开始。

Thread类中的方法:

static Thread currentThread():获取当前线程对象(静态方法,返回值为Thread类型的类,因此其调用格式为Thread.currentThread())。

getName():获取线程名称。

setName:设置线程名称。














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值