`

Java多线程

阅读更多

什么是线程

    线程是程序代码的一部分,可以在程序里独立执行。只在带个进程内活动。一个进程可以包含多个线程,多个线程里的数据是共享的,线程的调度是由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多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    java 多线程操作数据库

    ### Java多线程操作数据库:深入解析与应用 在当今高度并发的应用环境中,Java多线程技术被广泛应用于处理数据库操作,以提升系统的响应速度和处理能力。本文将基于一个具体的Java多线程操作数据库的应用程序,深入...

    Java多线程设计模式上传文件

    Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...

    java多线程经典案例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...

    java多线程Demo

    Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    java多线程分页查询

    ### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...

    java多线程ppt

    java多线程PPT 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题

    java多线程读取文件

    Java多线程读大文件 java多线程写文件:多线程往队列中写入数据

    Java多线程机制(讲述java里面与多线程有关的函数)

    Java多线程机制是Java编程中至关重要的一部分,它允许程序同时执行多个任务,提升应用程序的效率和响应性。以下是对各个知识点的详细说明: 9.1 Java中的线程: Java程序中的线程是在操作系统级别的线程基础上进行...

    深入浅出 Java 多线程.pdf

    在本文中,我们将深入浅出Java多线程编程的世界,探索多线程编程的基本概念、多线程编程的优点、多线程编程的缺点、多线程编程的应用场景、多线程编程的实现方法等内容。 一、多线程编程的基本概念 多线程编程是指...

    java 多线程并发实例

    在Java编程中,多线程并发是提升程序执行效率、充分利用多核处理器资源的重要手段。本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是...

    JAVAJAVA多线程教学演示系统论文

    《JAVA多线程教学演示系统》是一篇深入探讨JAVA多线程编程的论文,它针对教育领域中的教学需求,提供了一种生动、直观的演示方式,帮助学生更好地理解和掌握多线程技术。这篇论文的核心内容可能包括以下几个方面: ...

    java多线程实现大批量数据导入源码

    本项目以"java多线程实现大批量数据导入源码"为题,旨在通过多线程策略将大量数据切分,并进行并行处理,以提高数据处理速度。 首先,我们需要理解Java中的线程机制。Java通过`Thread`类来创建和管理线程。每个线程...

    汪文君JAVA多线程编程实战(完整不加密)

    《汪文君JAVA多线程编程实战》是一本专注于Java多线程编程的实战教程,由知名讲师汪文君倾力打造。这本书旨在帮助Java开发者深入理解和熟练掌握多线程编程技术,提升软件开发的效率和质量。在Java平台中,多线程是...

    java多线程查询数据库

    综上所述,"java多线程查询数据库"是一个涉及多线程技术、线程池管理、并发控制、分页查询等多个方面的复杂问题。通过理解和掌握这些知识点,我们可以有效地提高数据库操作的效率和系统的响应速度。

    java 多线程编程实战指南(核心 + 设计模式 完整版)

    《Java多线程编程实战指南》这本书深入浅出地讲解了Java多线程的核心概念和实战技巧,分为核心篇和设计模式篇,旨在帮助开发者掌握并应用多线程技术。 1. **线程基础** - **线程的创建**:Java提供了两种创建线程...

    java多线程,对多线程,线程池进行封装,方便使用

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,我们可以通过实现Runnable接口或继承Thread类来创建线程。然而,直接使用线程可能存在一些问题,如资源管理...

    JAVA多线程编程技术PDF

    这份“JAVA多线程编程技术PDF”是学习和掌握这一领域的经典资料,涵盖了多线程的全部知识点。 首先,多线程的核心概念包括线程的创建与启动。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建后...

    Java多线程编程技术

    《Java多线程编程核心技术》建议猿友们读两遍,因为其写得没有那么抽象,第一遍有些概念不是很理解,可以先跳过并记录起来,第一遍阅读的目的主要是了解整个架构。第二遍再慢慢品味,并贯穿全部是指点来思考,并将...

Global site tag (gtag.js) - Google Analytics