java学习笔记(九)多线程编程

本文介绍了Java中线程的基本概念,将其比喻为CD机中的激光头,阐述了线程作为执行代码的基本单位如何在Java平台上运行。通过实例展示了如何创建和启动线程,包括继承Thread类和实现Runnable接口两种方式。此外,还讨论了线程的并发执行以及Java平台对线程的管理。

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

目录

线程——执行代码的基本单位

1.java线程和cd机

 2.从CD机的工作机制来看java线程

java中线程的编程

15.2.1线程类Thread

15.2.2覆盖Thread类的run()方法

15.2.3使用Runnable接口

15.2.4两个线程


线程——执行代码的基本单位

线程可以说是机器,就是执行代码。java中的代码都是通过线程为基本单位来执行。

编写源代码————编写源文件——没有语法错误——生成class文件

1.java线程和cd机

class文件————CD碟片

Java线程-————CD机中的激光头

Java平台-————CD机

 2.从CD机的工作机制来看java线程

线程是执行java程序代码的基本单位

java线程是java平台的一部分

java线程是运行在java平台内部的,java平台负责管理java线程

java线程执行程序代码时,java平台为其提供各种所需条件

当线程执行完给它的方法后,就会退出。java平台如果没有正在运行的线程,就代表程序执行完毕,java平台就自动退出。

package com.javaeasy.execution;

public class Execution {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i =3+5;
		System.out.println(i);

	}

}

首先java平台会启动,去创建一个线程。然后java平台会读取它的参数。也就是com.javaeasy.execution.Execution。它的类是全限定名,找到Execution.class文件后,就会把它读取并加载到程序中,然后让开始创建出来的线程去知执行Execution类中的main()方法

java中线程的编程

15.2.1线程类Thread

线程的封装被叫做Thread类

在程序中,当创建一个Thread类的实例,一个真正的线程同时被创建出来。其实使用线程很简单

线程的作用就是执行一个方法,直到方法结束,线程也完成了使命

当创建出线程,也制定线程执行的方法,下面就是让线程启动起来

15.2.2覆盖Thread类的run()方法

1.Thread():这是Thread的一个构造方法,没有任何参数,创建线程实例很简单,可以不用带参数

2.void strat():strat()方法就是启动线程的方法,这个方法就是线程类中最核心的方法。

3.void run():run():方法是Thread类中一个普通的方法,它的特殊住处仅仅在于start()方法会将它作为线程的起点

package com.javaeasy.usethread;

public class MyThread  extends Thread{
	public void run () {  //覆盖Thread类中的run方法
		System.out.println("这是在另一个线程中执行的代码");
	}

}

上面的类很简单,首先需要注意的是MyThread类击沉Threadlei ,然后覆盖了run方法。这样启动的时候执行可以想到线程执行内容。

package com.javaeasy.usethread;

public class UseMyThread {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThread thread =new MyThread();//创建一个Thread类的实例
		thread.start();//创建一个新的线程
	}

}

Thread类的strat()方法是用来启动第一个线程的

Thread类的run()方法是一个线程启动后执行的方法

15.2.3使用Runnable接口

Thread类中有一个 类型为Runnable的属性,叫做target。而Thread类的run()方法用到了这个属性。

public void run()//Thread类的run()方法
    if(target != null){//判断target是否为空
    target.run ();//不为空执行run方法
     }
}

使用Runnable接口来让线程执行自己编写的run()方法

15.2.4两个线程

package com.javaeasy.usethread;

public class UseMyThread {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThread thread =new MyThread();//创建一个Thread类的实例
		thread.start();//创建一个新的线程
		System.out.println("这是在main方法中执行的代码");
	}

}
这是在main方法中执行的代码
这是在另一个线程中执行的代码

java作为平台,会让每个线程运行的时间差不多,线程之间执行代码的时候互补影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值