黑马程序员,黑马论坛-----多线程知识点总结
来源:互联网 发布:禁用445端口 编辑:程序博客网 时间:2024/05/01 22:14
来源:黑马程序员,黑马论坛
创建:
方式一:继承Thread类
步骤:
继承Thread覆写run( )方法
通过Thread子类创建线程对象
调用start( );方法开启线程执行run( )
方式二:实现Runnable接口
步骤:
定义类实现Runnable接口
覆盖接口中的run( )方法
通过Thread类创建线程对象
将实现Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
//让线程明确run( )方法所属对象是为了关联线程任务和线程对象
调用Thread对象的start( )方法。开启线程运行Runnable接口中的run( )方法
Ticket t = new Ticket();
Thread t1 = new Thread(t); //创建线程。
t实参传递,明确要运行的run( ) ,Ticket实现Runnable接口,覆写run()
状态:
创建:
new Thread对象或其子类对象
运行:
start( ),具备执行资格与执行权
冻结:
放弃执行资格与执行权
sleep(time);
必须指定时间,时间到从冻结状态变为运行状态
释放执行权不释放锁
wait( );
指不指定时间都可以,不指定的话必须由notify或notifyAll唤醒
释放执行权,释放锁 (必须在同步中)
消亡:
stop();
阻塞:
线程具备cpu的执行资格,没有cpu的执行权
join方法:直到调用该方法的线程执行完再往下继续执行,异步变同步
yield方法:让出CPU执行权给同优先级线程与sleep类似
安全问题:
产生原因:多个线程操作共享数据,共享数据有多条语句,在某时刻被一个线程执行时没有执行完就被其他线程参与进来,并继续操作了共享数据,导致错误产生
多个线程操作共享数据
有多条语句对共享数据进行运算
解决:(加锁)共享数据的多条语句在某一时刻让一个线程执行完,其他线程不能执行
单例
只有一个对象:自己创建别人不能创建但我提供方法让你用
例子:军队指挥官,电脑资源管理器
---饿汉
---懒汉
-------安全(双重判断加锁 single.class)
-------不安全
0 0
- 黑马程序员,黑马论坛-----多线程知识点总结
- 黑马程序员--多线程知识点总结
- 黑马程序员 知识点总结-Java多线程
- 黑马程序员,黑马论坛-------Collection总结
- 黑马程序员Java基础篇----小知识点总结(摘自黑马论坛)
- 黑马程序员 多线程总结
- 黑马程序员 多线程总结
- 多线程总结-----黑马程序员
- 黑马程序员-多线程总结
- 黑马程序员-多线程总结
- 【黑马程序员】多线程总结
- 黑马程序员 知识点总结-一部分
- 黑马程序员-HTLM知识点总结
- 黑马程序员--反射知识点总结
- [黑马程序员]多线程学习总结
- 黑马程序员----------多线程笔记总结
- 黑马程序员 Java多线程总结
- 黑马程序员---java多线程总结
- servlet实现请求转发(mvc设计模式)与请求重定向问题
- 云 CentOS 解决中文乱码方法. [自己备用]
- POJ1584-A Round Peg in a Ground Hole(凸包,判圆在凸包内)
- 浅谈java异常[Exception]
- 如何使用ActiveOutputText组件?
- 黑马程序员,黑马论坛-----多线程知识点总结
- 如何使用ActiveImage组件?
- 操作系统总结
- 监听类的写法
- [小技巧] 对当前目录的文件按大小排序
- shell脚本,每次读取文件的一行,逐行读取并处理
- 每天一个linux命令目录
- 如何在Table组件中使用Active Data Service?
- hdu1018!【数学】