java进阶:15.1 多线程 - Thread、Executor

本文介绍了Java中的多线程概念,包括进程与线程的区别,如何创建线程和任务,重点讲解了Thread类的使用,如线程的暂停、守护线程以及线程的优先级。同时,详细阐述了线程池的概念,解释了为何使用线程池以及Java中ExecutorService、ThreadPoolExecutor和Executors类的作用,提供了不同类型的线程池示例,如newFixedThreadPool和newCachedThreadPool,强调了线程池在处理并发任务中的重要性。
摘要由CSDN通过智能技术生成

1. 进程、线程概念

  1. 首先要理解进程(Processor)和线程(Thread)的区别:
  • 进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。

  • 线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。

  1. 一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。

  2. 线程没有地址空间,线程包含在进程的地址空间中。线程上下文只包含一个堆栈、一个寄存器、一个优先权,线程文本包含在他的进程 的文本片段中,进程拥有的所有资源都属于线程。所有的线程共享进程的内存和资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段, 寄存器的内容,栈段又叫运行时段,用来存放所有局部变量和临时变量。
     

2. 创建任务和线程

可以在程序中 创建附加的线程 以执行并发任务。在Java 中,每个任务都是 Runnable 接口的一个实例,也称为可运行对象(runnable object) 。线程本质上讲就是便于任务执行的对象。

  1. 定义一个实现Runnable 接口的类
    任务就是对象。为了创建任务,必须首先为任务定义一个实现Runnable 接口的类。Runnable 接口非常简单,它只包含一个run 方法。需要实现这个方法来告诉系统线程将如何运行。

  2. 创建一个任务
    一旦定义了一个TaskClass ,就可以用它的构造方法创建一个任务。

  3. 创建任务的线程:
    任务必须在线程中执行。Thread 类包括创建线程的构造方法以及控制线程的很多有用的方法。使用下面的语句创建任务的线程:
    Thread thread = new Thread(task);

  4. 调用start()方法
    然后调用start()方法告诉Java 虚拟机该线程准备运行。 thread.start();

  5. JVM调用run()方法执行任务


package Thread;
public class test {
   
	public static void main(String[] args) {
   
		Runnable printA = new PrintChar('a',100);  // 第 2 步
		Runnable printB = new PrintChar('b',100);
		Runnable print100 &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值