Java学习|多线程学习笔记
2024-09-01 04:55:19
什么是线程?
可以理解为进程中独立运行的字任务。
使用多线程:
1.继承Thread类:从源码可以看到,Thread累实现了Runnable接口。
如果多次调用start()方法,会出现异常Exception in thread “main” java.lang.IllegalThreadStateException
2.实现Runnable接口
在某些JVM中,i--分为如下三步:
A.取得原有i值
B.计算i-1
C.对i进行赋值
多线程同时访问,会出现非线程安全问题
println()方法内部是同步的。
currentThread()方法:可以返回代码正在被哪个线程调用。
isAlive()方法:判断当前线程是否处于活动状态。
活动状态:已经启动尚未终止。
sleep()方法:使当前正在执行的线程休眠指定毫秒数。
this.currentThread()方法返回的线程。
getId()方法:获得线程的唯一标识。
停止线程:
Thread.interrupt()方法:停止线程时使用。
不能马上停止,做停止标记,当前线程的方法执行完以后停止。
this.interrupted()方法:
测试当前线程是否是已中断状态,执行完清除状态标志为false
this.isInterrupted()方法:
测试当前线程是否是已中断状态,不清除状态标志
this.stop()方法:
暴力停止线程,已废弃,不推荐使用。
会抛出异常,但不需要捕获。
使用return配合interrupt()也可以停止线程。
注意:
建议使用抛异常的方法来终止线程,因为可以在catch代码块中处理异常。
Thread.yieId()方法:
使当前线程放弃cpu资源,重新分配。
放弃时间不确定,有可能刚放弃,马上又获得。
线程的优先级:
一般来说,优先级较高的线程得到的资源较多。
setPriority():设置线程优先级。
Java中优先级分为1~10,10个等级,小于1或者大于10都会抛出异常。
Jdk中有3个预定义的优先级,1,5,10
优先级的继承性:
A线程启动b线程,b线程的优先级和a线程是一样的
守护线程:
守护线程具有陪伴意义,当java中不存在非守护线程,那么守护线程也就销毁了
垃圾回收线程就是一个守护线程。
synchronized()同步方法:
非线程安全问题存在于实例变量中,局部变量不存在。
方法内部的变量是线程私有的。
当多个线程访问多个对象,jvm会创建多个锁。
最新文章
- linux内核调试技术之修改内核定时器来定位系统僵死问题
- SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示
- css属性在各种浏览器上的兼容性
- 关于轻松安装LNMP和LAMP的编译环境
- TTY驱动程序架构
- OpenCV入门学习笔记
- dig命令浅析
- python基础条件和循环
- Vue.js依赖收集
- linux基础之CentOS7新特性
- webdriver API
- Centos7编译hadoop异常:Received fatal alert: handshake_failure
- (转载)spring单例和多例详解。如何在单例中调用多例对象
- [SpringMVC-值传递] 初始SpringMVC--SpringMVC中的值传递
- Java多层嵌套异常处理的基本流程
- 删除oracle数据库用户
- 2017-2018-2 20155315《网络对抗技术》Exp9 :Web安全基础
- 从web启动winform程序
- 越狱机器SSH安装与使用
- ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem 2-SAT
热门文章
- Linux系统下word转pdf,xls转pdf,ppt转pdf
- Object.keys使用整理
- MyBatis从入门到精通(十二):使用collection标签实现嵌套查询
- 20131207-ADO.NET-第十六天
- ASP.NET--Repeater控件分页功能实现
- 在安装Openstack的keystone认证服务时,出现The request you have made requires authentication. (HTTP 401) (Request-ID: req-f94bebba-f0c5-4a92-85问题的处理
- 如何在Windows上使用Python进行开发
- python带有GIL解释器锁
- Liunx环境下配置matplotlib库使用中文绘图
- python 的几种数据类型