一个线程交替运行的考题
来源:互联网 发布:保税货物需要上传数据 编辑:程序博客网 时间:2024/06/09 13:44
传智播客视频中讲过这样一道题:
子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着回到主线程循环100次,如此循环50,写出程序。
这其实主要使用了Thread类的wait()和notify()方法,根据标志符使两个线程交替运行。实现如下:
public class ThreadCommunication {/** * @param args */public static void main(String[] args) {final Business business = new Business();new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubfor (int i = 0; i < 50; i++) {business.sub(i);}}}).start();for (int i = 0; i < 50; i++) {business.main(i);}}}class Business {private boolean isSub=true;public synchronized void sub(int arg) {while (!isSub) {try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}for (int i = 0; i < 10; i++) {System.out.println("sub thread " + i + " in circle " + arg);}notify();isSub = false;}public synchronized void main(int arg) {while (isSub) {try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}for (int i = 0; i < 100; i++) {System.out.println("main thread " + i + " in circle " + arg);}notify();isSub = true;}}
- 一个线程交替运行的考题
- [Java] Thread 线程交替运行
- 线程练习(两个线程交替运行)
- JAVA基础学习--一个线程加一运算,一个线程做减一运算,多个线程同时交替运行--synchronized
- 线程交替执行的代码
- 两个线程的交替打印
- 一个线程通信问题(sub运行10次,然后main运行100次,这样交替循环50次)
- Java子线程和主线程交替输出(一个简单的实例)
- 编写:创建2个线程,和主线程交替运行.
- 多线程demo-主线程和子线程交替运行
- 面试题:两个线程交替运行若干次
- Java 创建两个线程,和主线程交替运行。
- 手游中android平台在java代码里--->游戏子线程和java主线程的交替运行
- 一个大公司JAVA考题的问题
- 结束一个正在运行的线程
- Java中断一个正在运行的线程
- 如何中断一个正在运行的线程
- 两个线程交替执行
- linux 安装HTSeq
- OpenStack多节点部署(二)——操作系统安装
- 公交车上乘客进食,司机不管,一大叔打那女孩一耳光
- C++ 对象的内存布局(下)
- js 弹出层的方法
- 一个线程交替运行的考题
- ASP.NET多文件批量打包下载
- android屏幕 单位转换
- cocos2d-x跨android&ios平台开发入门教程
- [DLL]创建和使用静态库Lib
- Java 十进制 转 二进制、八进制、十六进制
- Myeclipse_Struts+Hibernate
- for循环占用的指令周期问题
- 未来 Firefox 将不自动运行所有插件