Java线程:概念及原理
2024-08-31 01:25:03
线程是执行的程序中的一个线程。 Java虚拟机允许应用程序必须同时运行多个执行线程。
每个线程都有一个优先事项。具有更高优先级的线程优先于线程的优先级较低的执行。每个线程可能会或可能不会也被标记为一个守护进程。当某个线程中运行的代码创建一个新的Thread对象,新线程的优先级最初设置为创建线程的优先级,并且是守护线程当且仅当创建线程是守护进程。当Java虚拟机启动时,通常都会有单个非守护线程(它通常调用名为主要一些指定类的方法)。 Java虚拟机继续直至出现以下任何一种情况发生时执行线程: Runtime类的exit方法已经被调用并且安全管理器允许退出操作发生。 所有线程都没有守护线程已经死亡,要么通过调用run方法返回或通过抛出一个传播超越了run方法的异常。
有两种方法来创建新的执行线程。一种是要声明一个类Thread的子类。这个子类应重写Thread类的run方法。子类的实例可以被分配和启动。另一种是继承Runnable接口,Runnable接口应该由任何类,其实例旨在由一个线程执行来实现。这个类必须定义的参数调用运行的方法。此接口设计用于为那些希望已激活时,执行代码对象的公共协议。例如,Runnable接口是由Thread类实现。被激活仅仅意味着一个线程已启动并且尚未停止。此外,Runnable接口提供了一类是活跃的,而不是继承线程的手段。即实现Runnable可以不通过实例化一个Thread实例,并在传递本身作为目标继承线程运行的类。在大多数情况下,Runnable接口应该使用,如果你只打算重写run()方法,并没有其他线程的方法。
最新文章
- 使用java代码关闭指定端口的程序-windows
- Hive文件存储格式
- linux下安装oracle
- Python编码问题整理
- git配置管理
- (旧)子数涵数·Flash——影片剪辑的事件操作
- [每日一题] OCP1z0-047 :2013-08-06 外表部――相关描述
- FFmpeg安装(windows环境)
- 我的three.js学习记录(三)
- MyEclipse10+Jdk1.7+OSGI+MySql实现数据库的增删改查
- 你不知道的JavaScript--Item18 JScript的Bug与内存管理
- 原生JS实现表单序列化serialize()
- (转)用库函数stdarg.h实现函数参数的可变
- Python学习之赋值列表
- 三维拓扑排序好题hdu3231
- 真-关闭win10安全中心(windows defender)
- 剑指offer(23)二叉搜索树的后序遍历序列
- cefsharp保存文件为pdf
- Android开发(八)——Android组件
- 详解 Cookie 纪要(vue.cookie,jquery.cookie简化)