下面总结一下这段时间学习java线程的一些入门基础知识.
一.什么是线程?
这个问题可以说是每个刚涉及java线程的人都会想知道的问题.究竟什么是线程呢?有的书上说线程就是执行代码的主体;有的书上说线程就是有序地执行代码的控制流程.其实具体点说一个线程就好比是一个人,他的工作任务已经被安排好,他只需要按顺序把任务全部完成,那么他就可以下班回家了!
二.线程有什么特性?
线程最大的特点就是它是独立运行的,不会受到其它线程的干扰.
三.什么是并发,什么是并行?
并发:多个线程同时运行在单核的CPU上时,因为CPU一个时间段只能运行一个线程,但由于CPU分配的时间片很短,因此,在我们看来,多个线程在CPU中是同时运作的,这就是并发.
并行:多个线程同时运行在多核CPU上,在同一个时间段就有可能有多个线程同时运行.
四.创建线程的方法
线程的创建可以有2种方法,一种是继承Thread类,一种是实现Runnable接口.这两种方法究竟有什么不同呢?通过继承Thread类来创建线程时,用户需要覆盖Tread中的run方法,然后new Thread()创建一个线程实例;但通过实现Runnable接口的方法只需实现run方法,并且在创建线程时是将Runnable的实例作为参数传入Tread的构造方法中即可.
五.start()与run()的区别
创建完一个线程实例后,需要调用其start()方法来启动该线程实例,如果不调用start()方法,即使创建出一个线程实例,它也只是相当于一个简单的实例,没有任何意义!当调用了start()方法,启动了线程后,线程进入了可运行状态,那么下一步线程就会调用其run()方法,然后线程执行相应的任务.
假如在没有调用start()方法的情况下,直接调用run()方法.那么会发生什么事情呢?在没有调用start()方法的情况下直接调用run()方法,就相当于线程实例都没有被启动,那么线程实例只是相当于一个普通的实例,当它调用run()方法时,也只是个普通的方法调用,根本没有任何意义.
六.sleep(),wait(),join()区别
在当前实例中调用sleep()方法,会使当前线程进入睡眠状态,一般调用slee()方法时都会传入一个毫秒数作为当前线程睡眠的时间,线程睡眠相应的毫秒后便会重新苏醒,当前线程处于睡眠状态时是不会释放当前对象锁的,其他线程无法获得当前对象的锁,只能等待,这是便会出现线程堵塞的现象.
wait()方法与sleep()方法的作用其实是一样的,但它们也有不同的地方;wait()方法使当前线程进入等待状态,进入等待状态的线程会释放当前获得的对象锁,以供后续的线程使用.
join()方法是等待指定的线程运行结束.当调用join()时,当前线程会等待它所连接的线程不再处于活动状态(既线程运行结束).
七.interrupted()与isInterrupted()区别
这两个方法都是用来判断线程是否被中断,它们的区别就在于:
interrupted()方法是一个静态方法,它是用来判断当前线程是否中断,然后返回一个布尔值;
isInterrupted()方法必须在一个对象上执行,判断所指定的对象是否已经被中断.
分享到:
相关推荐
### Java线程入门知识点详解 #### 一、Java线程基础知识概述 **1.1 什么是线程?** 线程是程序执行流的最小单元,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。在Java中...
以下是对Java线程入门的详细讲解: 1. **线程的基本概念**: - 线程是操作系统分配CPU时间的基本单元,一个进程可以包含一个或多个线程。 - 在Java中,每个应用程序至少有一个主线程,它负责启动和控制其他线程。...
Java线程入门,学习Java线程的好帮手
本书《Java线程入门》显然为初学者提供了一个良好的起点,适合对编程有一定了解的人群。书中可能涵盖了以下几个核心知识点: 1. **线程的概念与分类**:介绍什么是线程,线程如何在操作系统中运行,以及Java中线程...
Java线程是多任务编程的重要概念,特别是在Java这种支持并发执行的编程语言中。线程允许程序中的不同部分并行运行,从而提高了程序的效率和响应性。在Java中,线程可以分为两种类型:用户线程(由应用程序创建)和...
本文将基于提供的"Java线程入门"资料,深入探讨Java线程编程的基本概念、创建方法以及常见操作,帮助初学者建立起扎实的线程知识体系。 一、线程基础 1. 线程定义:线程是操作系统分配CPU时间的基本单元,一个进程...
完整版java基础入门教程由浅入深讲解 Java语言编程基础 第13章 多线程(共50页).ppt 完整版java基础入门教程由浅入深讲解 Java语言编程基础 第14章 网络通信(共76页).ppt 完整版java基础入门教程由浅入深讲解 ...
### Java线程入门知识点详解 #### 一、Java线程概览 - **目标读者**:本教程面向那些已经熟练掌握Java语言基本应用但对多线程编程尚不熟悉的程序员。 - **主要内容**:本教程将从零开始介绍Java线程的基础知识,...
java 线程基础入门 一个关于计算机的简化的视图是:它有一个执行计算的处理机、包含处理机所执行的程序的ROM(只读存储器)、包含程序所要操作的数据的RAM(只读存储器)。在这个简化视图中,只能执行一个作业。一个...
Java基础入门 本文档旨在为初学者提供Java基础知识的概述,涵盖了Java是什么、Java能做什么和Java怎样改变我的生活等问题的答案。 什么是Java? Java是一种高级程序语言,也是一个平台。它具有以下特征:简单、...
必知必会的多线程入门基础知识
本教程将深入浅出地介绍Java线程的基础知识,帮助初学者快速入门。 一、线程的创建 1. 继承Thread类:创建一个新的类,该类继承自Thread类,然后重写其run()方法。实例化这个子类对象后,调用start()方法即可启动...
### Java线程入门大全知识点详解 #### 一、线程基础概述 - **定义与特点:** - **线程**是一种比进程更细粒度的执行单元,它允许在一个进程中并发执行多个任务。 - **多线程**能够提高程序的效率和响应速度,...
《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...
### Java多线程入门知识点详解 #### 一、引言 多线程是现代软件开发中的重要技术之一,尤其在Java编程语言中占有极其重要的地位。对于任何一位Java程序员而言,掌握多线程的基本概念和技术是非常必要的。本文将...
《Java 基础入门》课后习题答案 第 第 1 章 Java 开发入门 一、填空题 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、 面向...
Java是一种广泛使用的面向对象的编程...总之,"Java基础入门"这个压缩包为初学者提供了一个全面的学习路径,从基础到进阶,涵盖了Java编程的各个方面。配合实际操作和不断的实践,将有助于迅速掌握这门强大的编程语言。
Java多线程是Java编程中的核心概念...通过阅读《Java线程入门.pdf》这样的学习资料,结合实际编程实践,可以逐步掌握这门技术。在学习过程中,参考《E书说明.txt》中的指导,可以更好地利用提供的资源,加速学习进程。
本资源“JAVA基础入门到精通pdf”提供了一条系统学习Java的路径,适合初学者作为入门教程。以下是对Java基础知识的详细解读: 1. **Java概述**:Java是由Sun Microsystems(现为Oracle公司)于1995年推出的一种面向...