面试题之开两个线程交替输出数字
2015-03-15 21:50
399 查看
java 设计一个类,要求两个线程分别交替输出正负整数:
public class printNumber implements Runnable { private int sign = 1;//1输出正数,-1输出负数 private static int seg = 1; //同步信号, 全局常量,所有线程共享 public printNumber(int sign) { this.sign = sign; } public void run() { for (int i=1; i<10; i++) { try { printNumber(i); } catch (Exception e) { e.printStackTrace(); } } } //同步方法 private synchronized void printNumber(int i) throws InterruptedException{ while (seg != sign) { wait(1000); } System.out.println(sign * i); seg = -1 * seg; } public static void main(String[] args) { printNumber p1 = new printNumber(1); printNumber p2 = new printNumber(-1); new Thread(p1).start(); new Thread(p2).start(); } }输出结果:
相关文章推荐
- 面试题一:实现两个线程交替打印数字
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数
- 面试必问!Java 多线程中两个线程交替执行,一个输出偶数,一个输出奇数
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数(方法一)
- 面试题:两个线程交替运行若干次
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数(方法二)
- 一道面试题:通过wait和notify的两个线程交互输出thread1-1...thread1-5,thread2-6...thread2-10...
- linux两个线程交替打印数字
- Google面试题—有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD
- 面试题_找出数组中两个只出现一次的数字
- C/C++面试题系列之3:输出1-N个数字
- 面试题:比较两个数字大小
- 两个线程交替打印ABABAB
- Google面试题(java)—有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD
- 面试题:将数字依次按三角形输出,每行一个数字
- 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
- 数组中只出现1次的两个数字(百度面试题)
- 【白话经典算法系列之十二】数组中只出现1次的两个数字(百度面试题)
- 【多线程】两个线程 交替执行
- 程序员面试题精选100题(34)-找出数组中两个只出现一次的数字