A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 354620815 中级黑马   /  2014-10-21 23:26  /  1768 人查看  /  7 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程面试题。。。。
  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. }
复制代码


7 个回复

倒序浏览
郁闷。。。没办法发帖了。。。
回复 使用道具 举报
线程2-往数组中添加了-6
线程1-往数组中添加了-3
线程2-往数组中添加了-8
线程1-往数组中添加了-1
线程2-往数组中添加了-7
线程1-往数组中添加了-9
回复 使用道具 举报
楼主为啥没办法发帖了,不会是字数有限制吧!
回复 使用道具 举报
技能get√
回复 使用道具 举报
谢谢,学习了
回复 使用道具 举报
Dream. 中级黑马 2014-10-23 14:24:58
7#
表示没看懂 = =
回复 使用道具 举报
楼主,完整的程序呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马