多线程2_补充_小记
来源:互联网 发布:ipad版淘宝不支持横屏 编辑:程序博客网 时间:2024/06/05 05:33
补充内容:
调度策略:
pc,服务器的调度策略是抢占式调度策略(操作系统调度进程)
手机等小型设备的调度策略是协作式调度(只有当前任务放弃执行或者执行完成后,其他任务才能开始执行,这样的调度策略容易受到恶意程序的干扰和攻击)
程序的生命周期分为【新建状态-就绪状态-运行状态-死亡状态–线程阻塞状态】
启动线程不用run(),而用start(),因为start()调用的是底层的run()方法,如果直接执行run()方法,系统会把线程看作普通对象,run()方法也是普通方法,不是线程执行体。
在实现Runnable接口的多线程方法中,如果父类没有throws异常的话,该方法也不能直接throws异常。
继承Thread的类获取线程对象用this,创建Thread子类是线程对象
实现Runnable接口获取线程对象用Thread.currentThread.方法获取,创建的Runnable对象是线程对象的target。
用实现Runnable,callable接口的方法创建多线程,优点:
1、是可以继承其他类而继承Thread类的方法不能继承
2、多线程共享一个target对象,适合多线程处理同一份资源,实现CPU、代码、数据分离
sleep和yield的区别
sleep:1、会使线程进入阻塞状态,过了阻塞时间后进入就绪状态
2、暂停后,任意优先级的线程都能来抢夺CPU的处理权
3、sleep会抛出异常InterruptedException
yiled:1、强制使得线程进入就绪状态
2、暂停后,只有优先级相同或者优先级更高的线程才能抢夺cpu的处理权
3、不抛异常
相对来说,sleep()有更好的可移植性,推荐使用sleep()。
- 多线程2_补充_小记
- 多线程_小记
- 39_文件下载2(补充)
- _多线程
- Guice笔记_补充
- 黑马程序员_补充
- 正则表达式_小记
- 集合_小记
- 链表_小记
- 泛型_小记
- 数据流_小记
- 处理流_小记
- Lock同步_小记
- 黑马程序员_多线程2
- 黑马程序员_多线程2
- 黑马程序员_多线程2
- 黑马程序员_多线程2
- 黑马程序员_多线程2
- 11.数据结构(4)
- Android图片解析
- SQL 经典五十道题
- Oracle数据库初学者
- ConcurrentHashMap源码解析
- 多线程2_补充_小记
- bootstrap
- AsyncTask源码解析
- 2140 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 【PHP自学笔记】第十五章 Smarty模板
- Iptables
- MFC-写Server的步骤和注意事项
- Java基础之数据类型
- Java常见异常总结