2.java高级特性之多线程

2.java高级特性之多线程

[TOC]

一 概述

3 常识

3.1 线程和进程

  1. 进程是受操作系统管理的基本运行单元,比如qq;线程可以理解成进程中独立运行的子任务,比如qq的传输数据、下载文件、发送表情等。

  2. 多线程程序是乱序执行。因此,只有乱序执行的代码才有必要设计为多线程。

    1. 当线程处于被阻塞或等待状态时,它暂时活动。它不运行任何代码且消耗最少的资源。

  3. java对多线程处理的支持是在对象这一级支持的,所以一个执行线程可表达为一个对象

3.2 线程优先级

优先级对jvm来说只是建议,最终执行还是看jvm的

三 基础

  1. jvm中的main线程和main方法只是名字相同而已

  2. 关于thread.start()和thread.run(),前者是把线程交给“线程规划器”,是异步的;后者是交给main主线程,那么就是同步的,这个有待考证

  3. 创建线程的三种方法:

    1. 继承

    2. 实现Runnable接口

五 经验

  1. 线程中的run方法并不会立刻执行完,比如a线程有个方法循环输出10次“hello world”,那么可能输出不到10次就去执行b线程的方法了,我之前竟然以为会执行完

七 未整理

  1. 不能用try,catch来获取线程中的异常?

  2. 守护线程?

  3. 心跳检测?

Last updated

Was this helpful?