java多线程问题
来源:互联网 发布:无锡服务器数据恢复 编辑:程序博客网 时间:2024/06/06 03:30
一提到多线程,大家都会想到多线程的实现方式之类的一些东西,但是仅仅是知道这些,下面给大家分享一道常见面试题,理解了这道题,那应该会对多线程更加深一些了解。
问题:子线程执行10次,主线程执行10次,然后子线程执行10次,主线程执行10次,循环20次,写出程序代码。。。大概就是这样的。
package com.asiainfo;/** * * @Description: TODO* @author zhuyh3* @date 2017-4-17 下午5:34:02 */public class TestMutiThread { public static void main(String[] args) { final ExecMethod em = new ExecMethod(); //子线程 new Thread(new Runnable(){ //创建线程public void run() {for(int i = 1 ; i <= 5 ; i++){em.sub(i);}} }).start(); //主线程 for(int i = 1 ; i <= 5 ; i++){ em.main(i); } }} class ExecMethod{ //创建业务处理类 static boolean flag = true; //来限制先执行子线程 public synchronized void main(int i){ if(flag){ try {this.wait(); //线程等待} catch (InterruptedException e) {e.printStackTrace();} } for(int j = 1 ; j <= 10 ; j++){ try { Thread.sleep(100); System.out.println("主线程执行第" + j + "次,该线程在当前第" + i + "个循环"); } catch (InterruptedException e) { e.printStackTrace(); } } this.notify(); //线程唤起 flag = true; }public synchronized void sub(int i){if(!flag){try {this.wait();//线程等待} catch (InterruptedException e) {e.printStackTrace();}}for(int j = 1 ; j <= 20 ; j++){try {Thread.sleep(100);System.out.println("子线程执行第" + j + "次,该线程在当前第" + i + "个循环");} catch (InterruptedException e) {e.printStackTrace();}}this.notify();//线程唤起flag = false;}}
0 0
- JAVA多线程问题
- java多线程同步问题
- java 多线程的问题
- JAVA多线程售票问题
- Java中的多线程问题
- Java多线程问题
- Java中的多线程问题
- JAVA 多线程的问题
- Java Servlet多线程问题
- java多线程的问题
- java多线程-问题
- Java多线程编程问题
- java多线程问题
- Java多线程问题
- Java多线程面试问题
- Java多线程面试问题
- java 多线程死锁问题
- Java 多线程面试问题
- Java对象存储到什么地方
- accessdatasource控件不能使用
- 3.依赖倒置原则
- 【MATLAB】fileparts函数
- Webrtc 回声消除 三(NS、VAD、AEC、AGC设备端终结篇)
- java多线程问题
- Abaqus简单部件受力分析
- 18. Hibernate_检索策略(lazy、fetch、batch-size等)
- 界面适配华为手机的虚拟按键的解决方案
- android 不同型号的终端的UI适配--一种解决方法
- SGU 438 动态网络流,SGU挂了,我也不知道A没A
- 网站性能体验34守则
- 参考了 网上 部分 代码 单链表
- iOS跳转微信朋友圈和扫一扫页面(已废弃)