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第八周总结相关推荐

  1. 2018-2019-1 20165318《信息安全系统设计基础》第八周课上测试

    2018-2019-1 20165318<信息安全系统设计基础>第八周课上测试 测试-1-ch03 任务详情 通过输入gcc -S -o main.s main.c,将下面c程序" ...

  2. 20172328 2018-2019《Java软件结构与数据结构》第八周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第八周学习总结 概述 Generalization 本周学习了二叉树的另一种有序扩展?是什么呢?你猜对了!ヾ(◍°∇°◍) ...

  3. 20165315 第八周考试课下补做

    20165315 第八周考试课下补做 测试-2-ch03 1.通过输入gcc -S -o main.s main.c 将下面c程序"week0303学号.c"编译成汇编代码 int ...

  4. 20172310 2017-2018-2 《程序设计与数据结构》第八周学习总结

    20172310 2017-2018-2 <程序设计与数据结构>第八周学习总结 教材学习内容总结 我的总结主要是按照课本的顺序,对一些重要的知识点做出的总结和记录,方便后期的查看,当然其中 ...

  5. 2019夏第八周学习编辑总结

    这个作业属于哪个课程 C语言程序设计二 这个作业要求在哪里 2019春季学期第八周作业 我的课程目标 掌握常用字符串函数以及使用指针操作字符串的方法,掌握动态内存分配. 这个作业在哪个具体方面帮助我实 ...

  6. 20172311《程序设计与数据结构》第八周学习总结

    20172311<程序设计与数据结构>第八周学习总结 教材学习内容总结 第十二章 优先队列与堆 堆(heap)就是具有两个附加属性的一颗二叉树 1.它是一颗完全树 2.对每一个节点,它小于 ...

  7. 20172322 《程序设计与数据结构》第八周学习总结

    20172322 <程序设计与数据结构>第八周学习总结 教材学习内容总结 本章的内容主要讲堆的知识,而所谓堆就是一种具有一些特殊属性的树,就像二叉查找树一样.而堆也有两种分类,分别是 最大 ...

  8. 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程

    第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...

  9. 2017-2018-20172309 《程序设计与数据结构》第八周学习总结

    2017-2018-20172309 <程序设计与数据结构>第八周学习总结 一.教材学习内容总结 相信其它很多同学都是以小顶堆来介绍这一章内容,所以我将以大顶堆来介绍这章内容. 1.1 堆 ...

最新文章

  1. 使用Python,OpenCV和Hough圆检测图像中的圆
  2. adb 提示adb server version(31) doesn't match this client(40) 解决办法
  3. “面试不败计划”:面试题基础一
  4. php配置前缀为任一个 .htacess,httpd.ini和.htaccess的写法与配置规则
  5. SpringMVC的请求-获得请求参数-获得POJO类型参数
  6. python字符串设置字体_python怎么更改字符串后几位
  7. 快速傅里叶变换(FFT)的C#实现及详细注释
  8. MATLAB:如何保存图片到指定文件夹?
  9. Gin 快速入门知识点总结(奇淼)
  10. 《智能路由器开发指南》——2.6 参考资料
  11. mysql下载备份数据库命令行_MYSQL 数据库导入导出命令 | 很文博客
  12. Linux系统与服务构建(一)
  13. QT二次开发Kvaser
  14. Linux内核时间管理和定时器
  15. 关于使用stm8单片机的“外部计数”TIMx_ETR测脉冲的软件配置问题!
  16. 经典Bug永流传---每周一“虫”(九)
  17. Zend Guard加密PHP项目图文分解教程,加密兼容PHP7.x
  18. oop-klass_在PHP和MySQL中处理时间和日期-OOP版本
  19. PCB的板层设计和布线
  20. 智能驾驶汽车之自动泊车发展阶段

热门文章

  1. Linux下把目录拷贝到全部同名目录的脚本
  2. git误删文件找回方法/git版本回退方法
  3. c++11: less的用法
  4. 有种软件你不得不备着,那就是数据恢复类软件
  5. 使用NDK开发SQLite3
  6. Windows 2003不同域之间迁移密码方法笔记截图
  7. Subversion For Windows的安装与使用
  8. python实现完全数
  9. dede扩展数据类型_数据类型,扩展
  10. java mybatis狂神说sql_狂神说SpringBoot09:整合MyBatis