免费网站java源码大全 java项目案例分析


在计算机世界中,并发是指一系列相互无关的任务在一台计算机上同时运行 。对于有多个处理器或者多核处理器的计算机来说,这个同时性是真实发生的 。然而,对于只有单核处理器的计算机来说,它仅仅是表面现象 。
所有现代操作系统均支持并发地执行任务 。用户可以在听音乐或者浏览网页的同时阅读邮件 。这种并发是进程级别的并发 。在同一进程内,也可以有多种同时运行的子任务,我们将这些并发的子任务称为线程 。与并发性有关的另一个概念是并行性( parallelism ) 。虽然它与并发性的概念不同,但是有一定联系 。一些学者认为,当多线程应用程序运行在单核处理器上时,程序就是并发运行的;当多线程应用程序运行在多个处理器或者多核处理器上时,程序就是并行运行的 。还有一些学者认为,多线程应用程序的线程执行顺序若不是预先定义的,程序就是并发运行的;如果多线程应用程序的线程按照指定顺序执行,那么这个程序就是并行运行的 。
本章介绍了如何使用Java 9 API来进行基本的线程操作,包括创建和运行线程、处理线程内抛出的异常、将线程分组,并将分组作为一个整体处理组内的线程 。
1.2线程的创建、运行和设置
本节介绍如何使用Java APl对线程进行基本的操作 。与Java语言中的基本元素一样,线程也是对象(Object ) 。在Java中,创建线程的方法有以下两种 。
直接继承Thread类,然后重写run()方法 。
构建一个实现Runnable接口的类并重写run()方法,然后创建该类的实例对象,并以其作为构造
参数去创建Thread类的对象 。建议首选这种方法,因为它可以带来更多的扩展性 。
在本节中,我们将采用第二种方法创建线程,然后学习如何改变线程的属性 。Thread类包含如下一些信息属性,它们能够辅助区分不同的线程、反映线程状态、控制其优先级等 。
ID:该属性存储了每个线程的唯一标识符 。
Name :该属性存储了线程的名字 。
Priority:该属性存储了 Thread对象的优先级 。在Java 9中,线程优先级的范围为1-10 ,其中1表示最低优先级, 10表示最高优先级 。通常不建议修改线程的优先级 。线程优先级仅供底层操作系统作为参考,不能保证任何事情,如果一定要修改,请知晓优先级仅仅代表了一种可能性 。
Status :该属性保存了线程的状态 。在Java中,线程有6种状态-Thread.State枚举中定义这些状态: NEW、 RUNABLE 、 BLOCKED 、wAITING、TIMED_MAIING和TERMINATED。这些状态的具体意义如下 。
NEW: 线程已经创建完毕但未开始执行 。
RUNNABLE: 线程正在JVM中执行 。
BLOCKED: 线程处于阻塞状态,并且等待获取监视器 。
WAITING: 线程在等待另一个线程 。
TIMED-MAITING: 线程等待另一个线程一定的时间 。

推荐阅读