首页 > 其他分享 >12月15日

12月15日

时间:2025-01-10 18:37:29浏览次数:1  
标签:状态 12 run Thread Runnable 线程 15 执行

今日重点学习了Java中的多线程编程,这是现代编程中实现并发和提高程序性能的关键技术。多线程可以让程序同时执行多个任务,充分利用计算机的多核处理器资源,提升程序的执行效率和响应速度。
线程是程序执行的最小单位,是操作系统能够进行调度的最小单位。一个进程可以包含多个线程,这些线程共享进程的资源,如内存空间、文件句柄等。在Java中,线程的实现主要依赖于Thread类和Runnable接口。

Thread类:是Java中表示线程的类,它提供了创建和控制线程的方法。通过继承Thread类并重写run方法,可以定义线程的执行体。例如:
java
public class MyThread extends Thread {
@Override
public void run() {
// 线程执行的任务
System.out.println("线程正在运行");
}
}
创建并启动线程:
java
MyThread myThread = new MyThread();
myThread.start(); // 启动线程,执行run方法
Runnable接口:是一个函数式接口,它定义了一个run方法,用于表示线程的任务。通过实现Runnable接口,可以将线程的任务与线程的控制分离,使线程任务可以独立于线程的调度和执行。例如:
java
public class MyRunnable implements Runnable {
@Override
public void run() {
// 线程执行的任务
System.out.println("线程正在运行");
}
}
创建并启动线程:
java
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start(); // 启动线程,执行run方法
Java中的线程有多种状态,包括新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、等待(Waiting)和终止(Terminated)。线程在执行过程中会在这几种状态之间转换。

新建状态:线程对象被创建后,处于新建状态。此时线程尚未启动,不能执行任何任务。
就绪状态:线程调用start方法后,进入就绪状态。此时线程已经具备了运行条件,但还没有获得CPU的执行权,等待操作系统调度。
运行状态:线程获得CPU的执行权后,进入运行状态。此时线程正在执行run方法中的任务。
阻塞状态:线程在执行过程中,可能会因为某些原因(如等待资源、执行同步代码块等)而进入阻塞状态。处于阻塞状态的线程暂时无法获得CPU的执行权,需要等待特定条件满足后才能重新进入就绪状态。
等待状态:线程调用wait方法后,进入等待状态。此时线程需要等待其他线程的通知(通过notify或notifyAll方法)才能继续执行。
终止状态:线程执行完毕或因异常退出后,进入终止状态。此时线程已经完成了它的生命周期,不能再次启动。

标签:状态,12,run,Thread,Runnable,线程,15,执行
From: https://www.cnblogs.com/wenbushi-dream/p/18664479

相关文章

  • 12月16日
    在多线程环境中,多个线程可能会同时访问和修改共享资源,这可能导致数据不一致和竞态条件等问题。为了保证数据的正确性和一致性,需要对线程进行同步和互斥控制。同步代码块:通过在代码块前加上synchronized关键字,可以将代码块标记为同步代码块。同步代码块需要指定一个锁对象,当线程进......
  • 12月12日总结
    今日复习了线性表中顺序表的相关操作初始化:voidInitList(SqList&L){ //申请存储空间 L.data=(int*)malloc(InitSize*sizeof(int)); L.length=0; L.MaxSize=InitSize;}插入:boolListInsert(SqList&L,inti,inte){ if(i<1||i<L.length+1) //判断i的范围是否有......
  • 12月17日
    今天主要学习了Java中的输入输出(I/O)系统,这是Java编程中用于处理数据输入和输出的核心机制。I/O系统提供了丰富的类和接口,用于读取和写入文件、网络数据等,是实现程序与外部世界交互的重要工具。JavaI/O框架主要分为两个部分:字节流(ByteStreams)和字符流(CharacterStreams)。字节......
  • 12月13日总结
    今日深入学习了数据结构中的单链表,收获颇丰。在概念理解上,单链表是由一系列节点组成的数据结构,每个节点包含数据域和指向下一节点的指针域,通过指针依次相连,形成一条线性链状结构。与数组相比,它的优势在于动态分配内存,无需预先指定大小,能灵活地进行插入和删除操作。学习过程中,重......
  • 12月18日
    今天继续学IO流文件读取(FileReader)FileReader用于从文件中读取字符数据。例如,读取一个文本文件:javaimportjava.io.FileReader;importjava.io.IOException;publicclassFileReaderExample{publicstaticvoidmain(String[]args){try(FileReaderfr=newFileReade......
  • 12月19日
    今日深入学习了Java中的网络编程,这是Java编程中用于实现网络通信的重要部分。通过网络编程,Java程序可以与其他计算机上的程序进行数据交换和通信,实现客户端-服务器(C/S)架构和分布式系统。Java网络编程主要涉及两个方面:套接字(Socket)编程和URL处理。套接字是网络通信的基础,它提供了......
  • 12月20日
    今天继续学习网络编程多线程服务器在实际应用中,服务器通常需要同时处理多个客户端连接。多线程服务器可以通过为每个客户端连接创建一个新线程来实现。例如:javaimportjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;publicclassMultiThreadedServer{......
  • 12月21日
    今天主要学习了Java中的反射(Reflection)机制,这是Java语言提供的强大功能,允许程序在运行时动态地获取类的信息、创建对象、调用方法和访问字段等。反射机制为Java程序提供了极大的灵活性和动态性,是实现框架和库等高级功能的基础。反射是指在程序运行时,能够获取任意一个类的属性和方......
  • 12月10日
    今日深入研读了Java中的异常处理机制,这是编程中极为关键的一环,它能有效保障程序的健壮性与稳定性,确保程序在遭遇错误时能够合理地响应并尽可能地继续执行。异常是指程序运行过程中出现的不正常情况,如除数为零、数组越界等。Java通过异常处理机制来应对这些突发状况。异常处理主要......
  • 12月11日
    今日继续深入研读了Java中的异常处理机制Java中的异常主要分为两大类:受检查异常(checkedexceptions)和非受检查异常(uncheckedexceptions)。受检查异常:是指那些在编译时需要显式处理的异常,如IOException、SQLException等。这类异常通常与程序的运行环境相关,如文件操作、网络通信等......