线程:一个独立的运行单位
31号学习了线程,在此之前我编写的所有Java程序都只有一个主线程,而线程的加入可以让程序在主线程下加入分线程,让程序具备同时进行多项工作的可能
在多线程OS中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。线程具有以下属性。
1)轻型实体
线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源,比如,在每个线程中都应具有一个用于控制线程运行的线程控制块TCB,用于指示被执行指令序列的程序计数器、保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。
2)独立调度和分派的基本单位。
在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。由于线程很“轻”,故线程的切换非常迅速且开销小(在同一进程中的)。
3)可并发执行。
在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行,充分利用和发挥了处理机与外围设备并行工作的能力。
4)共享进程资源。
在同一进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的地址空间(进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址;此外,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。
这便是最简单的一个线程程序了,主程序下只有一个线程
而这样就可以创建5个线程
而线程远不止这一种创建方法,还有通过内部类,通过Runable接口创建线程,通过Timertask创建等
其中Timertask提供了几种方法特别好用,比如scherule方法,他可以让线程在程序启动后n毫秒后启动
并隔m毫秒运行一次。
相关推荐
NULL 博文链接:https://hunnuxiaobo.iteye.com/blog/424256
NULL 博文链接:https://hunnuxiaobo.iteye.com/blog/436797
蓝杰实训 手机定位 系统技术原理 .
资源讲了一个使用java socket编写FTP client 的实例,可以学习java socket编程的基本步骤和原理
蓝杰IBM-robocode平台资料,java语言
CMPP模拟网关,用于CMPP2.0;CMPP3.0开发调试,同时提供相关java代码,供大家参数,若开发有困难的,大家可以借用华为的短信代理包 smproxy.jar
做为java分布式计算的基础框架的RMI体系,是javaEE结构的基础技术. 本课件全面讲解了RMI的一般实现,特殊问题解决及与sping的组合应用. 1.分布式计算的起因及基本原理 2.RMI体系结构 3.RMI服务器实现及编码 ...
基于桌面交互方式的web2.o应用,J2EE体系,MYSQL数据库,附带所有源码和数据库,附带说明:蓝杰网的源码
BlueBlood-OS这是一个类UNIX的64bit操作系统,从0开始完整的实现一个OS本篇README.md面向开发者上手指南以下指南将帮助您在本地机器上安装和运行该项目,...作者邵靳天@蓝杰您也可以在贡献者列表中提到所有参与该项目的