Java基础学习
来源:互联网 发布:java单例模式调用 编辑:程序博客网 时间:2024/06/07 09:24
多线程学习-小知识点
1.wait /notify的存在是在synchronized 下。
2.Thread 为什么不能直接调用run()函数而是使用start()方法进行线程的调用。
使用run是方法的调用,不是线程并行,执行完run之后采能执行其他线程。所以使用start函数
3.两种线程的创建和启动方式(启动:start()方法)
1)extends Thread 不提倡,因为Java不能多继承,最好使用下面的方法。
2)implements Runnable 在main主函数中还是要新建该类的Thread对象。
重写 public void run()方法
线程状态的转换:
Thread.sleep(静态方法)抛出异常InterruptedException,需要捕捉。哪里调用,那歌线程睡眠。
interrupt:太粗暴,不建议使用/stop:一样,不建议使用--较好停止方法逻辑变量Flag-while进行停止。
join:调用某线程,执行结束后,再恢复当前线程的运行
yield:让出CPU,让其他线程执行的机会
优先级:优先级越高,获得CPU执行的时间片越多,并不是一点不执行
wait
notify/notifyAll
锁定方式
synchronized(this){
}
锁定当前对象-互斥锁
或方法上注明synchronized 执行方法时,锁定当前对象(当前代码、方法 )
只有一个线程进入这个方法中,但是不妨碍别的方法,除非别的方法上锁
死锁
o1 被锁定 休息 需要锁定o2
o2 被锁定 休息 需要锁定o1
陷入死锁状态
0 0
- java学习-java基础
- 【java学习】java基础
- 【Java学习】--Java基础
- java线程学习基础
- java基础学习感悟
- Java基础学习
- Java基础学习1
- java基础学习
- java基础学习
- java的学习基础
- java基础学习
- Java语言基础学习
- java IO基础学习
- java基础学习笔记
- java编程基础学习
- java 基础学习
- java基础学习笔记
- JAVA学习基础DAYSOF02
- 计算机网络部分的面试常考点
- LabVIEW_USB_I2C_AM2321B
- PHP常用函数
- 怎样把firefox从53版本降低到49版本
- python 生成xml文件
- Java基础学习
- 编译原理-递归下降语法分析器(Java)
- cin的详细用法--day2
- keil 简介
- Vector的实现
- Sendmail邮件服务器搭建与配置笔记
- 常用的jvm参数
- 【树形结构】洛谷 P1030 求先序排列
- windows配置react native环境