美文网首页多线程与高并发面试
Java之多线程编程核心技术的6点整理

Java之多线程编程核心技术的6点整理

作者: 阿_毅 | 来源:发表于2017-03-26 13:25 被阅读679次

    开心一笑

    【服务员来个西红柿炒鸡蛋,服务员:没有西红柿了。
    那来一个白菜炖豆腐,服务员:没有豆腐了……
    那好,来个鸡蛋炒白菜。
    服务员:好的,您稍等,菜马上好!】

    提出问题

    java多线程编程核心技术的6点笔记???

    唯美图片

    解决问题

    1.1 进程的概念

    进程是受操作系统管理的基本运行单元。

    例如:操作系统中运行的.exe的程序理解为一个进程。

    1.2 线程的概念

    在进程中独立运行的子任务。线程的生命周期是个不可循环的过程,一个线程对象结束了不能再次start。

    1.3 线程的生命周期

    1

    1.4 线程的优先级

    • 线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5.
    • setPriority()该方法是为线程设置优先级

    1.5 两种线程

    用户线程:用户创建的一般线程,如继承Thread类或实现Runnable接口等实现的线程。

    守护线程:为用户线程提供服务的线程,如JVM的垃圾回收、内存管理等线程。

    守护线程的两个方法:setDaemon( )和 isDaemon()。

    • Thread.setDaemon(false/true)设置为用户线程/守护线程
    • thread.setDaemon(true)必须在thread.start()之前设置
      -任何线程都可以是守护线程或者用户线程,所有线程一开始都是用户线程

    1.6 sleep、yield、wait区别

    sleep:

    • 不释放锁,不放弃当前CPU资源
    • 如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。

    yield:

    • 不释放锁,放弃CPU资源

    wait:

    • 是释放锁,并放弃CPU资源

    读书感悟

    来自村上春树《且听风吟》

    • 看海看久了想见人,见人见多了想看海。
    • 慷慨付出的,便是经常得到的。
    • 有什么就害怕失去它。一无所有,又担心会永远一无所有。每个人都一样。
    • 心情抑郁的人只能做抑郁的梦,要是更加抑郁,连梦都不做的。
    • 什么自信之人,那样的人根本不存在,有的不过是能够假装自信的人。
    • 不妨说,说谎与沉默是现代人类社会的两大罪过,而我们经常说谎往往沉默。
    • 要活着,就必须想个不停。从明天的天气到浴盆塞子的尺寸。
    • 只要我始终保持事事留心的好学态度,即使衰老也算不得什么痛苦。

    经典故事

    【有一个人在森林中漫游的时候,突然遇见了一只饥饿的老虎,老虎向他猛扑上来。他用最大的力气和最快的速度逃开,但是老虎紧追不舍。他被老虎逼入了断崖边上。站在悬崖边上,他想:“与其被老虎活活咬死,还不如跳入悬崖,说不定还有一线生机。”他纵身跳入悬崖,非常幸运地卡在一棵树上。那是一棵长在断崖边的梅树,树上结满了梅子。正在庆幸,他听到断崖深处传来吼声,原来崖底有一只凶猛的狮子正抬头望着他。狮子的声音使他心颤,而更不妙的是,他转头看见一黑一白两只老鼠,正用力地咬着梅树的树干。他经过一阵惊慌,很快又平静了:“被老鼠咬断树干跌死,总比被狮子咬好吧?”情绪平复下来后,他感到肚子有点饿了,看到梅子长得正好,就采了一些吃起来。他觉得一辈子从没吃过那么好吃的梅子。他心想:“既然迟早都要死,不如在死前好好睡上一觉吧!”他为自己找到一个三角形的枝桠,在树上沉沉地睡去。睡醒之后,他发现黑白老鼠不见了,老虎、狮子也不见了。他顺着树枝,小心翼翼的攀上悬崖,终于脱离险境。原来就在他睡熟的时候,饥饿的老虎按捺不住,跃下悬崖。黑白老鼠听到老虎的吼声,惊慌逃走了。跳下悬崖的老虎与崖下的狮子经过激烈打斗,双双负伤而遁。【心语】由我们诞生的那一刻开始,苦难,就像饥饿的老虎一直追赶着我们;死亡,就像一头凶猛的狮子,一直在悬崖的尽头等待;而白天和黑夜的交替,就像一黑一白两只老鼠,不停地撕咬着我们暂时栖身的生活之树。总有一天我们会落入狮子的口中。既然知道了生命中最坏的结果不过就是死亡,唯一的路,就是安然地享受树上甜美的果子,然后安心地睡觉。存着这种单纯的心——少一些欲望,多一点赤子之心,我们的生活才是健康、美好的。

    大神文章

    【1】Java多线程编程核心技术(第一章笔记)
    【2】Java多线程-线程的生命周期
    【3】java 线程1 线程分类
    【4】《Java多线程编程核心技术》读书笔记
    【5】java之yield(),sleep(),wait()区别详解-备忘笔记
    【6】Java用户线程和守护线程
    【7】yield(),sleep()以及wait()的区别(修正版)
    【8】sleep() wait() yield() join()用法与区别

    其他

    如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎点赞、顶、欢迎留下宝贵的意见、多谢支持!

    相关文章

      网友评论

        本文标题:Java之多线程编程核心技术的6点整理

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