什么是线程
线程是程序代码的一部分,可以在程序里独立执行。只在带个进程内活动。一个进程可以包含多个线程,多个线程里的数据是共享的,线程的调度是由Java虚拟机负责的。
线程是在同一时间段内需要完成多项任务时被实现的。多线程可以并行地完成一个程序中多段代码的功能,最大限度地利用CPU资源。
线程与进程的比较
进程是在操作系统上运行的,有独立的地址空间;线程是运行在进程内部的,一个进程可以包含多个线程。线程之间的切换不会引起进程之间的切换。
进程是一个拥有资源的独立单位;线程自己不拥有资源,只可以访问进程的资源,同一进程的多个线程可以共享这个进程的所有资源。线程拥有自己的栈空间,拥有独立的执行序列。
进程在创建时,系统要为它分配内存区域;线程创建时不需要分配内存,它使用的是所属进程的资源。线程消耗的资源远远小于进程所消耗的资源。
进程的多任务处理中,程序是调度分配的最小代码单位;线程的多任务处理中,线程是最小的执行单位。
线程的生命周期
新建状态 new Thread
可运行状态 start 等待获得CPU的使用权
运行状态 run获得CPU的使用权
阻塞状态 block引起阻塞的原因消失时,才会进入可运行状态,排队等待获得CPU的使用权
结束线程状态 run执行结束,或者调用stop方法来退出,或者抛出一个未捕获的异常时,生命周期就会结束
实现方法:
- 继承Thread类实现多线程
- 实现Runnable接口实现多线程
示例代码1:
public class ThreadTest extends Thread{
private String threadName;
public ThreadTest(String name){
threadName=name;
}
public void run(){
for(int i=0;i<10;i++)
System.out.println(threadName+"("+i+")");
}
public static void main(String[] args){
ThreadTest t1=new ThreadTest ("thread 1");
ThreadTest t2=new ThreadTest ("thread 2");
ThreadTest t3=new ThreadTest ("thread 3");
t1.start();
t2.start();
t3.start();
}
}
执行结果:
C:\javastudy>java ThreadTest
thread 1(0)
thread 1(1)
thread 1(2)
thread 1(3)
thread 1(4)
thread 1(5)
thread 1(6)
thread 1(7)
thread 3(0)
thread 3(1)
thread 3(2)
thread 3(3)
thread 3(4)
thread 3(5)
thread 3(6)
thread 3(7)
thread 2(0)
thread 2(1)
thread 2(2)
thread 2(3)
thread 2(4)
thread 2(5)
thread 2(6)
thread 1(8)
thread 1(9)
thread 3(8)
thread 3(9)
thread 2(7)
thread 2(8)
thread 2(9)
C:\javastudy>
实例代码2:
public class RunnableTest implements Runnable{
private String threadName;
public RunnableTest(String name){
threadName=name;
}
public void run(){
for(int i=0;i<10;i++)
System.out.println(threadName+"("+i+")");
}
public static void main(String[] args){
Thread t1=new Thread (new RunnableTest("thread 1"));
Thread t2=new Thread (new RunnableTest("thread 2"));
Thread t3=new Thread (new RunnableTest("thread 3"));
t1.start();
t2.start();
t3.start();
}
}
执行结果:
C:\javastudy>java RunnableTest
thread 1(0)
thread 1(1)
thread 1(2)
thread 1(3)
thread 1(4)
thread 1(5)
thread 1(6)
thread 1(7)
thread 3(0)
thread 3(1)
thread 3(2)
thread 3(3)
thread 3(4)
thread 3(5)
thread 3(6)
thread 3(7)
thread 2(0)
thread 2(1)
thread 2(2)
thread 2(3)
thread 2(4)
thread 2(5)
thread 2(6)
thread 1(8)
thread 1(9)
thread 3(8)
thread 3(9)
thread 2(7)
thread 2(8)
thread 2(9)
C:\javastudy>
分享到:
相关推荐
### Java多线程知识点详解 #### 一、Java Thread 概念 在Java中,**线程**是一种轻量级的进程,它是程序执行流的最小单元。一个标准的Java应用通常至少包含一个线程,即主(Main)线程。Java支持多线程编程,这...
Java多线程编程是提升程序性能和响应性的关键技术。理解多线程的概念,掌握线程的创建、同步、通信、死锁避免等核心知识点,以及合理使用线程池,对于编写高效、稳定的并发程序至关重要。通过实践,开发者可以更好地...
Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个不同的任务,极大地提高了程序的效率和响应性。在现代计算机系统中,多线程技术被广泛应用,尤其是在服务器端应用、并发处理以及高并发场景下,Java多...
要认识多线程就要从操作系统的原理说起。以前古老的DOS操作系统(V6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率,采用批处理来...
Java多线程结构是Java编程中的重要组成部分,它允许程序同时执行多个任务,提升系统效率。在Java中,实现多线程主要有两种方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当自定义类继承Thread类时,...
Java多线程是Java编程中的核心概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:通过实现`Runnable`接口和继承`Thread`类。 1. 实现Runnable接口 当一个类...
Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...
【Java多线程读取大文件】是一种优化的文件处理策略,特别适用于处理大型文本文件。在传统的单线程I/O操作中,读取大文件可能导致内存溢出(OOM),尤其是在尝试一次性加载整个文件到内存时。为了避免这个问题,我们...
Java多线程下载器是一种利用Java编程语言实现的高效文件下载工具,它通过将大文件分割成多个部分并同时下载,显著提高了下载速度。在Java中实现多线程下载器涉及许多关键概念和技术,包括线程、并发控制、网络I/O...
Java多线程是Java编程中的核心概念,尤其对于高级开发者来说,掌握多线程的深入理解和应用至关重要。这本书“java多线程进阶”显然旨在帮助读者深化这方面的理解,打通编程中的“任督二脉”,使开发者能够更加熟练地...
"Java多线程并发执行demo代码实例" 在Java编程中,多线程并发执行是非常重要的概念,它可以提高程序的执行效率和响应速度。今天,我们通过一个demo代码实例来学习Java多线程并发执行的实现。 知识点1:泛型 在...
Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...
Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过`Thread`类和并发工具来实现,接下来我们将深入探讨这些关键知识点。 1. **...
《Java多线程编程核心技术》建议猿友们读两遍,因为其写得没有那么抽象,第一遍有些概念不是很理解,可以先跳过并记录起来,第一遍阅读的目的主要是了解整个架构。第二遍再慢慢品味,并贯穿全部是指点来思考,并将...
JAVA多线程编程实例详解 JAVA多线程编程是指在一个程序中可以同时运行多个线程,以提高程序的执行效率和响应速度。JAVA多线程编程可以通过继承Thread类或实现Runnable接口来实现。 在JAVA中,线程是系统进行资源...
java多线程处理大数据,可根据配置的线程数,任务去调度处理
Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,从而提高程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承`java.lang.Thread`类或实现`java.lang.Runnable`接口。 1. 继承Thread...
Java多线程编程是Java开发中的一项重要技术,它允许程序同时执行多个任务,提高了系统效率和响应速度。然而,多线程环境下的编程也带来了一些挑战,如数据同步、线程安全等问题。本文将重点讨论Java多线程编程中需要...
详解Java多线程处理List数据 Java多线程处理List数据是指在Java编程中,使用多线程技术来处理List数据的操作。这种操作可以提高程序的执行效率和性能,特别是在处理大规模数据时。下面将详细介绍Java多线程处理List...