Java之多线程编程核心技术的6点整理(一)_编程技术点-程序员宅基地

技术标签: java  多线程  一步一步学Java  6点建议  

开心一笑

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

视频教程

大家好,我录制的视频《Java之优雅编程之道》已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定会收获到很多知识的。谢谢大家的支持……

视频地址:http://edu.csdn.net/lecturer/994

提出问题

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()用法与区别

其他

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/huangwenyi1010/article/details/66474460

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签