下面总结一下这段时间学习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线程入门java线程入门java线程入门java线程入门java线程入门java线程入门java线程入门
java线程入门java线程入门java线程入门java线程入门
java线程入门知识
【完整课程列表】 ... 完整版精品java课件 ...完整版精品java课件 Java基础入门教程 Java程序设计 第13章 多线程(共24页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第14章 socket网络编程(共24页).ppt
java线程入门 Java线程编程很好的入门书
Java线程入门,学习Java线程的好帮手
完整版java基础入门教程由浅入深讲解 Java语言编程基础 第13章 多线程(共50页).ppt 完整版java基础入门教程由浅入深讲解 Java语言编程基础 第14章 网络通信(共76页).ppt 完整版java基础入门教程由浅入深讲解 ...
java 线程基础入门 一个关于计算机的简化的视图是:它有一个执行计算的处理机、包含处理机所执行的程序的ROM(只读存储器)、包含程序所要操作的数据的RAM(只读存储器)。在这个简化视图中,只能执行一个作业。一个...
必知必会的多线程入门基础知识
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程序语言设计 01 java语言基础 Java语言概述(共24页).ppt 完整版 Java基础入门教程 Java...完整版 Java基础入门教程 Java程序语言设计 07 网络编程 线程(共23页).ppt
【完整课程列表】 ... 完整版精品java课件 ...完整版精品java课件 Java基础入门教程 Java程序设计 第13章 多线程(共24页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第14章 socket网络编程(共24页).ppt
【完整课程列表】 ... 完整版精品java课件 ...完整版精品java课件 Java基础入门教程 Java程序设计 第13章 多线程(共24页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第14章 socket网络编程(共24页).ppt
Java基础入门教程 Java编程技术08 线程(2学时)(共15页).ppt Java基础入门教程 Java编程技术09 Swing UI编程(6学时)(共80页).ppt Java基础入门教程 Java编程技术10 集合框架(略)(共48页).ppt Java基础入门教程 ...
【完整课程列表】 完整版精品java课件 ...完整版精品java课件 Java基础入门教程 Java程序设计 第13章 多线程(共24页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第14章 socket网络编程(共24页).ppt
【完整课程列表】 完整版 Java基础入门教程 Java程序语言设计 01 java语言基础 Java语言概述(共24页).ppt 完整版 Java基础入门教程 Java...完整版 Java基础入门教程 Java程序语言设计 07 网络编程 线程(共23页).ppt
【完整课程列表】 完整版 Java基础入门教程 Java程序语言设计 01 java语言基础 Java语言概述(共24页).ppt 完整版 Java基础入门教程 Java...完整版 Java基础入门教程 Java程序语言设计 07 网络编程 线程(共23页).ppt
【完整课程列表】 ... 完整版精品java课件 ...完整版精品java课件 Java基础入门教程 Java程序设计 第13章 多线程(共24页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第14章 socket网络编程(共24页).ppt