1、进程和线程的概念

  1、进程:进程是操作系统的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位。

  2、线程:线程可以理解为进程中独立运行的子任务,线程只能归属于一个进程并且它只能访问该进程所拥有的资源。

2、实现多线程编程的方式

  1、继承Thread类,该类在源码实现上,也是实现了Runnable接口,使用该类最大的局限性就是java不支持多继承。

  2、实现Runnable接口.

3、常用API

  1、currentThread():返回代码段正在被哪个线程调用的信息。

  2、isAlive():判断当前线程是否处于活动状态。

  3、sleep():当前线程休眠。

  4、getId():获取当前线程的唯一标识。

4、停止运行线程的方法

  1、使用退出标志,是线程正常退出,也就是当run方法完成后线程退出。

  2、使用stop方法强行终止线程,不推荐此方法,因为stop和suspend、resume方法都是作废过期的方法,使用将产生不可预期的结果。

  3、使用interrupt方法中断线程。

5、suspend方法和resume方法

  1、suspend():暂停线程

  2、resume():恢复暂停线程的执行

  缺点:这两个方法,使用不当,极易造成公共的同步方法被独占,使得其它线程无法访问。还会出现因为线程暂停而导致数据不同步的情况

6、yield():这个方法的作用是放弃当前的CPU资源,将它让给其它的任务去占用CPU执行时间,但放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。

7、线程的优先级

  1、在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中任务。在java中,线程的优先级分为1~10这10个等级。如果超出,抛出异常

  2、线程优先级的继承性:在java中,线程的优先级具有继承性,比如A线程启动B线程,则B线程跟A线程的优先级是一样的。

  3、优先级具有规则性和随机性:高优先级的线程总是大部分先执行完,但不代表高优先级的线程总是每一次都先执行完。

8、守护线程:在java线程中,有两种线程,一种是用户线程。一种是守护线程,守护线程是一种特殊的线程,当进程中不存在非守护线程了,则守护线程自动销毁。典型的守护线程就是垃圾会收线程

最新文章

  1. mesos 学习笔记1 -- mesos安装和配置
  2. 与你相遇好幸运,Waterline初遇
  3. WPF 操作键盘
  4. JAVA的覆盖、继承和多态的详细解说.this和super的用法
  5. ERR: Call to undefined function openssl_random_pseudo_bytes()
  6. windows ssh RPi 2B
  7. poj1947Rebuilding Roads(树形DP)
  8. 元器件选型(一)ESD、TVS参考资料
  9. 发现中文版《C Primer Plus第五版》示例程序的一个错误
  10. 全国计算机等级考试二级教程-C语言程序设计_第4章_选择结构
  11. 用 monitorix 开启linux图形化监控
  12. linq语句复杂查询和分开查询的性能对比
  13. JAVA课程设计个人博客 学生成绩管理 201521123023 戴建钊
  14. Delaunay三角化算法
  15. C#编译器优化那点事
  16. 使用CSS样式的三种方式
  17. NLog类库使用探索——编程配置
  18. python3安装pip3的方法
  19. LogisticRegression 和 LogisticRegressionCV
  20. tensorRT 构建推理引擎

热门文章

  1. RabbitMQ学习之Work Queues(2)
  2. 1.2打印ASCII码
  3. Manacher HDOJ 5371 Hotaru's problem
  4. 二分图最大匹配(匈牙利算法) URAL 1721 Two Sides of the Same Coin
  5. 279 Perfect Squares 完美平方数
  6. TFS修改了工作区
  7. JSON基础 JS操作JSON总结
  8. while和for的内嵌
  9. linux下jdk与tomcat的安装与配置
  10. 用Python利用pyFirmata控制Arduino实现Blink