java多线程
来源:互联网 发布:激光发射器软件 编辑:程序博客网 时间:2024/06/05 15:10
方法一: synchronized
必须保证同步中只能有一个线程在执行。
好处: 解决了多线程的安全问题。弊端: 多个线程需要判断锁,较为消耗资源。
1、同步代码块
synchronized(对象) { //需要被同步的代码 }
对象如同锁,持有锁的线程可以在同步中执行。
没有持有锁的线程即使获取了CPU的执行权,也进不去,因为没有获取锁。
同步的前提:
a、必须要有两个或者两个以上的线程;
b、必须是多个线程使用一个锁。
2、同步函数
同步函数使用的锁是(this);
如果同步函数被静态修饰后,使用的锁是该类对应的字节码文件对象(类名.class),该对象的类型是class.
3、多线程通信 (等待 唤醒机制)
等待唤醒机制使用的必须是同一个锁才有效。
wait()notify()notifyAll()
4、在JDK1.5以后,提供了多线程进行了升级
将同步Synchronized替换成现实Lock操作。
将Object中的wait, notify ,notifyAll,替换成了Condition对象。该对象可以在Lock锁中进行获取
5、stop 方法已经过时。
只有通过run方法结束来停止线程。
当线程处于冻结状态时,无法读取标记(flag)发生全阻塞时,可以通过 interrupt()方法恢复到运行状态来,这样就可以操作标记让线程结束。
阅读全文
0 0
- 【Java多线程】多线程死锁
- Java 多线程
- java 多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA 多线程
- Java多线程
- java多线程
- JAVA 多线程
- Java 多线程
- Java 多线程
- java多线程
- Java 多线程
- Java多线程
- java 多线程
- 基础篇二---基本命令总结
- php获取文件创建时间,修改时间,访问时间
- 玲珑 1149
- vb.net 教程 12-2 HtmlDocument类 4
- 关于 hashCode() 你需要了解的 3 件事
- java多线程
- 科学计数法
- C语言树的编程程序
- window对象方法moveBy();moveTo()效果不显示
- 生成删除某个数据库中的所有表外键关联语句
- 笔试题:发奖金(搜狐2016研发笔试题)
- 第二篇 Java核心技术
- 覆写ProgressDialog的setMessage方法无效的问题
- 20170805Windows12_3_虚拟内存页面区块/内存信息