黑马程序员技术交流社区

标题: 多线程面试题 [打印本页]

作者: 354620815    时间: 2014-10-21 23:26
标题: 多线程面试题
多线程面试题。。。。
  1. package mytest;

  2. /**
  3. *
  4. *  声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),
  5. *         给数组中添加数据,每一个线程为数组添加3个数据即可。
  6. *
  7. *         多线程间的通讯等待唤醒:指的是多个线程处理同一资源,但是操作资源的线程代码不同
  8. *
  9. *         这里两个线程的任务是一样的,都是往数组中添加元素,所以不用等待唤醒,用sleep...
  10. *        
  11. */

  12. public class ResArray {

  13.         private int[] arr = new int[6];

  14.         // 共享资源....
  15.         private int pro = 0;

  16.         // 操作共享资源的代码...同步:同步的是操作共享资源的代码,不是整个线程任务都要同步
  17.         public synchronized void setEle(int num) {
  18.                
  19.                 if (pro >= arr.length)        pro = 0;
  20.                 int xxx = arr[pro++] = num;
  21.                 System.out.println(Thread.currentThread().getName() + "-往数组中添加了-" + xxx);
  22.         }
  23. }
复制代码



作者: 354620815    时间: 2014-10-21 23:41
郁闷。。。没办法发帖了。。。
作者: 354620815    时间: 2014-10-21 23:43
线程2-往数组中添加了-6
线程1-往数组中添加了-3
线程2-往数组中添加了-8
线程1-往数组中添加了-1
线程2-往数组中添加了-7
线程1-往数组中添加了-9
作者: 千里马    时间: 2014-10-21 23:56
楼主为啥没办法发帖了,不会是字数有限制吧!
作者: 苏浩    时间: 2014-10-22 00:19
技能get√
作者: 践行渐远    时间: 2014-10-23 12:41
谢谢,学习了
作者: Dream.    时间: 2014-10-23 14:24
表示没看懂 = =

作者: mingtianrsm    时间: 2014-10-23 14:58
楼主,完整的程序呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2