线程的调度
时间:2019-06-12
本文章向大家介绍线程的调度,主要包括线程的调度使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
计算机通常只有一个cpu,在这种情况下,所谓多线程从宏观上看是并发进行的,但是微观下还是串行的,因为同一时刻只能有一个线程运行。
有两种调度模型:
分时调度:所有线程平分cpu的时间片,轮流占用CPU
抢占式调度:根据优先级占用CPU
Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平台独立的原因。
sleep():是线程方法, 放弃CPU, 转到阻塞状态。当睡眠结束后,先转到就绪状态,分到时间片后再运行,不会放弃同步锁
wait():是Object方法,会放弃同步锁,必须在有对象锁的情况下才能执行,否则报异常
join():方法是属于Object的实例方法。挂起当前线程(一般是主线程),直至它所调用的线程终止才被运行。
例如a线程中b.join()则a等b执行完后才运行
interrupt():中断某个线程的运行,抛出interruptException异常,try捕获,catch处理
线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true 抛出interruptException异常,未设置为false,中断后结果 即线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于如何处理抛出的异常了。
sleep,wait,join方法都要用try catch包裹,异常会报interruptException
原文地址:https://www.cnblogs.com/wskb/p/11009966.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 为容器化的 Postgres 数据库启用 ssl 连接
- 【SpringBoot web-1】web项目数据校验
- 【SpringBoot web-2】web项目参数传递
- 筛法求素数
- redis学习(十三)
- 【SpringBoot web-3】web项目统一数据封装与全局异常处理
- 送你 8 张图,好好理解一下。
- 【前端系列-1】ajax与Springboot通信将数据库数据渲染到前端表格
- 【前端系列-2】layui+springboot实现表格增删改查
- 容器技术|Docker三剑客之docker-swarm
- 【前端系列-3】layui表格使用自定义模板templet
- 【前端系列-4】layui表格集成select选择框和switch开关
- 使用docker Registry快速搭建私有镜像仓库(内附干货)
- 【前端系列-5】layui-from swtich使用小结
- Python解析变长结构体