20165302第八周总结
20165302第八周总结
进程与线程
线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,没有进程就不会有线程,就像没有操作系统就不会有进程一样
main线程
- 当JVM加载代码,发现main方法后,就会启动一个线程,称为main线程,负责执行main方法
线程的进程与生命周期
- 新建
- 运行
- 中断:有四种原因的中断:JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。线程使用CPU资源期间,执行了sleep(intmillsecond)方法,使当前线程进入休眠状。
线程使用CPU资源期间,执行了wait()方法。
线程使用CPU资源期间,执行某个操作进入阻塞状态。 - 死亡
线程的常用方法
- start(): 线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了。
- run(): Thread类的run()方法与Runnable接口中的run()方法的功能和作用相同,都用来定义线程对象被调度之后所执行的操作,都是系统自动调用而用户程序不得引用的方法。
- sleep(int millsecond): 优先级高的线程可以在它的run()方法中调用sleep方法来使自己放弃CPU资源,休眠一段时间。
- isAlive(): 线程处于“新建”状态时,线程调用isAlive()方法返回false。在线程的run()方法结束之前,即没有进入死亡状态之前,线程调用isAlive()方法返回true。
- currentThread():该方法是Thread类中的类方法,可以用类名调用,该方法返回当前正在使用CPU资源的线程。
- interrupt() :一个占有CPU资源的线程可以让休眠的线程调用interrupt()方法“吵醒”自己,即导致休眠的线程发生InterruptedException异常,从而结束休眠,重新排队等待CPU资源。
线程的同步
- 多个线程调用synchronized方法机制:当一个线程使用synchronized方法时,其他线程想使用这个方法时就必须等待
线程联合
- A在占有CPU资源期间一旦联合B,可以用B.join()让其他线程和本线程联合
协调同步的线程
- wait() 方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。
- notifyAll() 方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从刚才的中断处继续执行这个同步方法,并遵循“先中断先继续”的原则。
- notify() 方法只是通知处于等待中的线程的某一个结束等待。
守护线程
- 线程调用void setDaemon(boolean on)方法可以将自己设置成一个守护线程
代码托管
转载于:https://www.cnblogs.com/dky20165302/p/8909422.html
20165302第八周总结相关推荐
- 2018-2019-1 20165318《信息安全系统设计基础》第八周课上测试
2018-2019-1 20165318<信息安全系统设计基础>第八周课上测试 测试-1-ch03 任务详情 通过输入gcc -S -o main.s main.c,将下面c程序" ...
- 20172328 2018-2019《Java软件结构与数据结构》第八周学习总结
20172328 2018-2019<Java软件结构与数据结构>第八周学习总结 概述 Generalization 本周学习了二叉树的另一种有序扩展?是什么呢?你猜对了!ヾ(◍°∇°◍) ...
- 20165315 第八周考试课下补做
20165315 第八周考试课下补做 测试-2-ch03 1.通过输入gcc -S -o main.s main.c 将下面c程序"week0303学号.c"编译成汇编代码 int ...
- 20172310 2017-2018-2 《程序设计与数据结构》第八周学习总结
20172310 2017-2018-2 <程序设计与数据结构>第八周学习总结 教材学习内容总结 我的总结主要是按照课本的顺序,对一些重要的知识点做出的总结和记录,方便后期的查看,当然其中 ...
- 2019夏第八周学习编辑总结
这个作业属于哪个课程 C语言程序设计二 这个作业要求在哪里 2019春季学期第八周作业 我的课程目标 掌握常用字符串函数以及使用指针操作字符串的方法,掌握动态内存分配. 这个作业在哪个具体方面帮助我实 ...
- 20172311《程序设计与数据结构》第八周学习总结
20172311<程序设计与数据结构>第八周学习总结 教材学习内容总结 第十二章 优先队列与堆 堆(heap)就是具有两个附加属性的一颗二叉树 1.它是一颗完全树 2.对每一个节点,它小于 ...
- 20172322 《程序设计与数据结构》第八周学习总结
20172322 <程序设计与数据结构>第八周学习总结 教材学习内容总结 本章的内容主要讲堆的知识,而所谓堆就是一种具有一些特殊属性的树,就像二叉查找树一样.而堆也有两种分类,分别是 最大 ...
- 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程
第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...
- 2017-2018-20172309 《程序设计与数据结构》第八周学习总结
2017-2018-20172309 <程序设计与数据结构>第八周学习总结 一.教材学习内容总结 相信其它很多同学都是以小顶堆来介绍这一章内容,所以我将以大顶堆来介绍这章内容. 1.1 堆 ...
最新文章
- 使用Python,OpenCV和Hough圆检测图像中的圆
- adb 提示adb server version(31) doesn't match this client(40) 解决办法
- “面试不败计划”:面试题基础一
- php配置前缀为任一个 .htacess,httpd.ini和.htaccess的写法与配置规则
- SpringMVC的请求-获得请求参数-获得POJO类型参数
- python字符串设置字体_python怎么更改字符串后几位
- 快速傅里叶变换(FFT)的C#实现及详细注释
- MATLAB:如何保存图片到指定文件夹?
- Gin 快速入门知识点总结(奇淼)
- 《智能路由器开发指南》——2.6 参考资料
- mysql下载备份数据库命令行_MYSQL 数据库导入导出命令 | 很文博客
- Linux系统与服务构建(一)
- QT二次开发Kvaser
- Linux内核时间管理和定时器
- 关于使用stm8单片机的“外部计数”TIMx_ETR测脉冲的软件配置问题!
- 经典Bug永流传---每周一“虫”(九)
- Zend Guard加密PHP项目图文分解教程,加密兼容PHP7.x
- oop-klass_在PHP和MySQL中处理时间和日期-OOP版本
- PCB的板层设计和布线
- 智能驾驶汽车之自动泊车发展阶段