面试题,子线程10次子线程2执行20次与主线程100次来回循环执行50次
2014-08-10 22:42
260 查看
// 面试题,子线程2执行10次子线程2执行20次 与主线程100次来回循环执行50次 public class interview { public static void main(String[] args) { final Business b = new Business(); new Thread(new Runnable(){ @Override public void run() { for (int i = 1; i <= 50; i++) { b.sub2(i); } } }).start(); new Thread(new Runnable(){ @Override public void run() { for (int i = 1; i <= 50; i++) { b.sub3(i); } } }).start(); for (int i = 1; i <= 50; i++) { b.main(i); } } } class Business{ private int order=1; Lock lock = new ReentrantLock(); Condition con1 = lock.newCondition(); Condition con2 = lock.newCondition(); Condition con3 = lock.newCondition(); public void sub2(int i){ lock.lock(); try { while (order != 2) { try { con2.await(); } catch (InterruptedException e) { e.printStackTrace(); } } for (int j = 1; j <= 10; j++) { System.out.println("sub2 Thread is sequence of " + j + "..lamp of " + i); } System.out.println("/.................."); order = 3; con3.signal(); } finally{ lock.unlock(); } } public void sub3(int i){ lock.lock(); try { while (order != 3) { try { con3.await(); } catch (InterruptedException e) { e.printStackTrace(); } } for (int j = 1; j <= 20; j++) { System.out.println("sub3 Thread is sequence of " + j + "..lamp of " + i); } System.out.println("/.................."); order = 1; con1.signal(); } finally{ lock.unlock(); } } public void main(int i){ lock.lock(); try { while (order != 1) { try { con1.await(); } catch (InterruptedException e) { e.printStackTrace(); } } for (int j = 1; j <= 100; j++) { System.out.println("main Thread is sequence of " + j + "..lamp of " + i); } order = 2; System.out.println("........................"); con2.signal(); } finally { lock.unlock(); } } }
本文出自 “要么拼命,要么滚回去!” 博客,请务必保留此出处http://jiangzuun2014.blog.51cto.com/8732469/1538354
相关文章推荐
- 面试题,子线程10次与主线程100次来回循环执行50次
- 线程同步通信技术(四)子线程10次与主线程100次来回循环执行50次
- 子线程循环10次,主线程执行100次,紧接着子线程执行10次,再执行主线程 如此往复50次。子线程循环的时候主线程不能打扰,相同的是主线程执行循环的时候子线程也不能打扰
- 面试题:子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次,请写出程序
- 多线程面试题:子线程循环10次,接着主线程循环100次;接着回到子线程循环10次,然后再回到主线程循环100次,如此交替50次。
- Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
- java多线程笔试题:子线程循环10次;接着主线程循环20次,接着又子线程循环10次,接着再回到主线程又循环20次,如此循环50次,请写出程序。
- 第十天 :让一线程执行10次,然后让二线程执行10,然后一执行,二执行,这样循环50次,编写程序
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程100次,如此循环50次
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 子线程循环10次,紧接着主线程循环100次,来回50次
- 机试题-〉子线程循环10次,接着回到主线程循环100次,又接着回到子线程循环10次,再接着回到主线程又循环100次,如次循环50次,请写出程序
- 【Java面试题】30 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
- 并发包实现:机试题-〉子线程循环10次,接着回到主线程循环100次,又接着回到子线程循环10次,再接着回到主线程又循环100次,如次循环50次,请写出程序
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次。
- java多线程 典型案例:子线程执行10次,主线程执行100次,两者交替50次
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
- 子线程和主线程业务依次执行循环50次