Java线程简单复习

Java线程简单复习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本篇文章主要为对Java多线程基础部分的复习,内容不多,均为整理归纳。


提示:以下是本篇文章正文内容

一、什么是线程?

线程就是进程中一个独立的控制单元,又称程序的最小执行单位,线程在控制着进程的执行,一个进程中至少有一个线程。线程表示一条单独的执行流,它有自己的程序执行计数器,有自己的栈。

二、实现线程

1.继承Thread

Java中java.lang.Thread这个类表示线程,一个类可以继承Thread并重写其run方法来实现一个线程:

//集成java.lang.Thread类
public class helloThread extend Thread(){
	//实现run方法
	@Override
	public viod run(){
		System.out.println("hello");
	}
}

run方法类似于单线程程序中的main方法,线程从run方法的第一条语句开始执行直到结束。

定义了这个类不代表代码就会开始执行,线程需要被启动,启动需要先创建一个HelloThread对象,然后调用Thread的start方法,如下所示:

public static void main(String[] args){
	Thread thread = new helloThread();
	thread.start(); 
}

调用start方法后,HelloThread的run方法就会开始执行,屏幕输出"hello".

start表示启动该线程,使其成为一条单独的执行流,背后,操作系统会分配线程相关的资源,每个线程会有单独的程序执行计数器和栈,操作系统会把这个线程作为一个独立的个体进行调度,分配时间片让它执行,执行的起点就是run方法。

如果不调用start,而直接调用run方法呢?屏幕的输出并不会发生变化,但并不会启动一条单独的执行流,run方法的代码依然是在main线程中执行的,run方法只是main方法调用的一个普通方法。

如何确认代码是在哪个线程中执行的呢?Thread有一个静态方法currentThread,返回当前执行的线程对象,每个Thread对象都有一个id和name:

public class helloThread extend Thread(){
	//实现run方法
	@Override
	public viod run(){
		System.out.println("hello");
		System.out.println("helloThreadName:"+helloThread.currentThread().getName());
	}
}

2.实现Runnable接口

通过继承Thread来实现线程虽然比较简单,但我们知道,Java中只支持单继承,每个类最多只能有一个父类,如果类已经有父类了,就不能再继承Thread,这时,可以通过实现java.lang.Runnable接口来实现线程。

Runnable接口的定义很简单,只有一个run方法,如下所示:

public interface Runnable{
	oublic abstract void run();
}

但是仅仅实现Runzble是不够的,要启用线程,还是要创建一个Thread对象,传一个Runnable对象即可。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值