Java高级部分的多线程的部分小结:
本人菜鸟,这是老师强行布置的课后作业,伤不起~~~~(>_<)~~~~
个人小结,仅供自己复习,欢迎大家踊跃讨论,如有纰漏,还请大神们多多指教
一、程序、进程、线程之间相互概念:首先,程序是一个在硬盘中可以执行的代码集合。程序正在进行的部分就是进程,是程序某些个功能的的运行计算的集合。而线程是基于进程开辟的更小的能独立运行的单位。(此处有线程同步和异步的概念)。一个程序至少有一个进程,一个进程至少有一个线程。这里主要讲多线程。
二、线程的创建和启动:分别有三个方法。
1.直接继承一个thread类。
2.实现一个接口类Runable类。(多用这个方法)因为一个类只能继承一个父类,但可以实现多个接口。
3.继承一个TimerTask。可以控制在多少时间后执行这个线程。
三:同步和异步的概念:
线程的同步是指:线程需要执行多件事物,但一次只能做一件事。对于一个对象使用线程同步的概念时,是指一个线程在操作这个对象的时候,其他线程不能能对它进行操作。
线程的异步是指:多个线程同时进行,可以对同一个对象同时进行操作。所以说,线程同步是安全的,线程异步是不安全的。所以在某些地方需要让线程同步。
实现线程的同步的两种方法:
1.在需要同步的语句块或方法外面添加一个关键字:synchronized。(用完后会自动的释放锁定的对象)
2.定义一个接口类:Lock。需要的步骤有:创建锁;上锁;需要被锁定的语句块;解锁。
四、线程的状态
新建(new Thread):当线程对象被创建的时候
就绪(Runnable):当调用完线程的start()方法之后.等待系统的调用执行
运行(Running):线程正在执行它的run()方法。
阻塞(中断)(Not Runnable):当线程sleep()或者wait()的
死亡(Dead)):线程run()方法执行完毕。
五、.线程的通信:
线程的通信就是实现多个线程之间的资源共享和交换数据。一般是采取Object的wait( )和notify( )来完成。
但是这两个在使用的时候仅在Synchronized的方法中才能被调用。wait()让线程等待,进入阻塞状态,而notify()则是激活某个等待线程,其实就是撤销该线程的阻塞状态,从而使他们有机会再次运行。
六、线程中暂停和死亡的方法不能够使用,所以在控制线程的暂停、继续和死亡的时候一般是定义两个Boolean类型的变量来控制线程的休眠或死亡状态。示例代码如下:
boolean isPause = false;// 是否暂停
boolean isStop = false;// 是否停止
public void run() {
while (!isStop) {
if (!isPause) {
//需要在线程中执行的代码
//...
}
try {
Thread.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
}
}
七、线程的优先级
线程的优先级的作用是,告诉线程调度机制这个线程的重要程度的高低。
线程的最大优先级是10,最小优先级是1,线程的默认优先级是5,可以通过setPriority方法来改变线程的优先级。
以上为个人学习多线程的一些要点和概念理解。如有差错,跪求指出,大谢~~~
相关推荐
python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py
linux优化笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4496133&spm_id_from=333.999.0.0&desc=1
知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载,CRMEB知识付费分销与直播营销系统是由西安众邦科技自主开发的一款在线教育平台,该系统不仅拥有独立的知识产权,还采用了先进的ThinkPhp5.0框架和Vue前端技术栈,集成了在线直播教学及课程分销等多种功能,旨在为用户提供全方位的学习体验,默认解压密码youyacaocom
美妆神域-JAVA-基于springBoot美妆神域设计与实现
原生js制作Google粘土logo动画涂鸦代码.zip
golin 扫描工具使用, 检查系统漏洞、web程序漏洞
原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
去水印web端独立版web
原生js制作左侧浮动可折叠在线客服代码.zip
Chrome 谷歌浏览器下载
全新完整版H5商城系统源码 自己花钱买的,亲测可用,需要自行下载 H5商城系统设置是实现商城基本功能的核心部分,涵盖了从网站配置、短信和支付配置,到商品、工单、订单、分站和提现管理等多个模块的设置。以下是详细的设置指南,帮助您快速上手并高效管理商城系统。 测试环境:Nginx+PHP7.0+MySQL5.6 1. 网站配置 设置商城名称、LOGO、标题、联系方式和SEO关键词等,确保商城专业和易于搜索。 2. 短信配置 配置短信接口和模板,用于发送订单通知、验证码等,提升用户体验。 3. 支付接口配置 配置微信、支付宝等支付接口,填写API密钥和回调地址,确保支付流畅。 4. 商品分类管理 对商品进行分类和排序,设置分类名称和图标,便于用户查找商品。 5. 商品管理 添加和管理商品信息、规格、图片等,确保商品信息准确丰富。 6. 工单管理 查看和回复用户工单,记录售后问题,提升用户服务质量。 7. 订单管理 查看订单详情,更新订单状态,支持批量导出,方便订单跟踪。 8. 分站管理 创建不同区域分站,设置权限,统一管理各区域市场。 9. 提现管理
apk安装包
原生js选项卡插件自定义图片滑动选项卡切换.zip
宗教信息佛教佛寺寺庙庵堂相关数据集提供了全国各个地区省市县各个佛教寺庙的详细信息。这些数据不仅包括寺庙的名称和负责人姓名,还涵盖了所属省份、地级市、区县、具体地址、建立日期以及支派类别等关键信息。该数据集整理了超过3万条样本,为研究中国佛教寺庙的分布、历史和文化提供了丰富的第一手资料。这些信息有助于了解佛教在中国的传播和发展,以及寺庙在社会和文化中的作用。数据的整理和提供,对于宗教学、社会学、历史学和文化研究等领域的学者来说,是一个宝贵的资源。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
简单的 Python 版本管理pyenvpyenv 可让您轻松在多个 Python 版本之间切换。它简单、不引人注目,并遵循 UNIX 传统,即使用单一用途的工具来做好一件事。该项目由rbenv和 ruby-build分叉而来,并针对 Python 进行了修改。pyenv 的作用是什么......允许您根据每个用户更改全局 Python 版本。为每个项目的 Python 版本提供支持。允许您使用环境变量覆盖 Python 版本。一次搜索多个 Python 版本的命令。这可能有助于使用tox跨 Python 版本进行测试。与 pythonbrew 和 pythonz 相比,pyenv没有……依赖于Python本身。pyenv由纯shell脚本制作。不存在Python的引导问题。需要加载到你的 shell 中。相反,pyenv 的 shim 方法通过向你的 中添加目录来工作PATH。管理虚拟环境。当然,你可以自己创建虚拟环境 ,或者使用pyenv-virtualenv 来自动化该过程。目录安装获取 PyenvLinux/UNIX自动安装程序基本
Notepad-v2.20工具,是替代Notepad++的首选工具
原生js随机图片拖拽排序代码.zip
更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值