多线程经典面试题
来源:互联网 发布:宜宾县网络电视台 编辑:程序博客网 时间:2024/05/22 07:45
经典面试题: 三个线程循环打印出ABC各10次。 每个对象需要同时持有前一个对象的锁和自身的锁才可以打印,然后唤醒持有自己锁的下一个对象,再释放前一个对象的锁和执行权。
更详细的说明参考:http://www.cnblogs.com/GarfieldEr007/p/5746362.html (搞懂这个要花点小时间)
import java.lang.Thread; import java.lang.Runnable; class ThreadDemo implements Runnable{ private String name; private Object pre; //前一个对象锁 private Object self; //自身对象锁 ThreadDemo (String name, Object pre, Object self) { this.name = name; this.pre = pre; this.self = self; } public void run () { int num = 10; while(num > 0 ) { synchronized (pre) { synchronized (self) { System.out.print(name); num--; self.notify(); } try{ pre.wait(); } catch (Exception e) { e.printStackTrace(); } } } } public static void main(String[] args) { Object a = new Object(); Object b = new Object(); Object c = new Object(); ThreadDemo r1 = new ThreadDemo("A", c, a); ThreadDemo r2 = new ThreadDemo("B", a, b); ThreadDemo r3 = new ThreadDemo("C", b, c); Thread td1 = new Thread(r1); Thread td2 = new Thread(r2); Thread td3 = new Thread(r3); td1.start(); try {Thread.sleep(100);} catch (Exception e) {} td2.start(); try {Thread.sleep(100);} catch (Exception e) {} td3.start(); } }
阅读全文
0 0
- 多线程经典面试题
- 多线程经典面试题
- 多线程经典面试题
- 多线程经典面试题
- 多线程经典面试题
- 多线程经典面试题
- 多线程经典面试题
- 经典多线程面试题
- 多线程经典面试题
- 多线程经典面试题
- 多线程经典面试题
- 多线程经典面试题总结
- 多线程经典笔试面试题
- java经典多线程面试题
- 一道很经典的多线程面试题
- 顺序打印ABC------java多线程的一道经典面试题
- 【java】java面试题经典汇总,包括并发多线程
- 多线程:自动释放池(含一个经典面试题)
- 剖析C++是如何解决菱形继承的二义性和数据冗余的
- sublime text3 使用ctrl+b,只有bulid结果,没有代码输出结果
- 等待唤醒机制与简单的生产消费者模型
- 某名企关于衍生词替换成词根的面试题
- java生成UUID
- 多线程经典面试题
- Unity中的CG编写Shader系列(Blend)
- C++常用数据类型转换的区别
- JAVA集合框架基础
- 对Guava Cache的封装和使用(包括一个管理页面实现了查看统计信息、情况、查看记录等)
- 前端<tr>分页实现
- AndroidStudio中的NDK开发初探
- React 的数据载体:state、props、context
- Java 高并发缓存与Guava Cache