并发编程艺术-4

作者: e86dab508bc1 | 来源:发表于2018-04-15 22:53 被阅读0次

    本文主要介绍的Java 并发编程的基础知识, 其中包括了:线程是什么? 为什么需要多线程? 线程的状态和相关操作。

    什么是线程:操作系统在运行程序时,会为其创建出一个进程,现代操作系统最小的调度单位是线程,每一个线程都有自己的堆栈,程序计数器,局部变量,可以访问共享内存。

    为什么要使用多线程 :

    (1) 多处理器

    (2) 更快的响应时间

    (3) 更好的编程模型

    线程的状态 :

    New: 创建线程,为其分配空间,等待CPU 分配时间片运行,这时候不一定加载到内存中,有可能被溢出到磁盘上面,还没调用 start.

    Runnable:得到CPU时间片,开始运行

    Sleep:释放CPU使用权,一段时间后继续运行,不释放锁

    Wait:释放CPU使用权,需要notify/notifyall 唤醒,不然一直处于等待状态

    Sleep(time) :释放CPU使用权,一段时间后继续运行,不释放锁

    Wait(time), 会释放锁,进入等待。

    Blocked:没有获得锁,阻塞.

    Terminal:run 方法结束。

    中断:是线程的一个标识位属性,就好像是其他线程通过调用interrupt() 进行告知线程消息,而线程通过检测自身的中断标识位来判断是否有线程中断自己,Thread 类里面的很多方法通过抛出interruptException,清除中断标识位。

    • @throws InterruptedException

    • if any thread has interrupted the current thread. The

    • <i>interrupted status</i> of the current thread is

    • cleared when this exception is thrown.

    */

    这边有个tip : 每一个线程的结束的时候都会调用自身的notifyAll, 这个在JDK 源码中实现了。

    相关文章

      网友评论

        本文标题:并发编程艺术-4

        本文链接:https://www.haomeiwen.com/subject/vbflkftx.html