黑马程序员技术交流社区
标题:
面试完了
[打印本页]
作者:
fatesabering
时间:
2014-12-23 18:44
标题:
面试完了
哎 答得不是很好,分享一下面试题,我自己当时没做出来,希望大家多做准备吧
声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),给数组中添加数据,每一个线程为数组添加3个数据即可。
作者:
惠惠惠惠惠
时间:
2014-12-23 18:45
好难的样子。
作者:
FINE
时间:
2014-12-23 19:08
你报的第几期??
作者:
范中俊
时间:
2014-12-23 19:37
楼主哪一期呀~~
作者:
Seejun
时间:
2014-12-23 19:53
发来贺电
作者:
Paul_Chang
时间:
2014-12-23 19:56
有点小难啊,十分钟估计也悬了,刚试了下用sleep()和yield()都能实现线程轮流添加元素,但是不知道符不符合题意呢
作者:
奋斗的蜗牛ksd
时间:
2014-12-23 22:04
跟老毕讲的那个 银行存钱是一个道理 。。。
作者:
后悔药
时间:
2014-12-23 22:07
不管怎么说先恭喜楼主了
作者:
I空空
时间:
2014-12-24 11:50
压力好大,不会做
作者:
双鱼座程序员
时间:
2014-12-24 13:18
多谢分享。
作者:
fatesabering
时间:
2014-12-24 17:48
哎 做出来了
package test;
import java.util.Arrays;
import java.util.Random;
/*
* 声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),
* 给数组中添加数据,每一个线程为数组添加3个数据即可。
* */
class Resource
{
private int[] arr = new int[6];
private int pos = 0;
public synchronized void write(int num)
{
this.notify();
arr[pos] = num;
pos++;
System.out.println(Thread.currentThread().getName()+":"+Arrays.toString(arr));
try{this.wait();}catch(Exception e){}
}
}
class Write2Array implements Runnable
{
private Resource r;
Write2Array(Resource r) {
// TODO Auto-generated constructor stub
this.r = r;
}
public void run()
{
for(int x=0; x<3; x++)
{
try {
Random random = new Random();
try{Thread.sleep(random.nextInt(100));}catch(Exception e){}
r.write(random.nextInt(100));
} catch (Exception e) {
// TODO: handle exception
}
}
}
}
public class exam02 {
public static void main(String[] args) {
Resource r = new Resource();
new Thread(new Write2Array(r)).start();
new Thread(new Write2Array(r)).start();
}
}
复制代码
应该符合题意吧
作者:
油茶籽
时间:
2014-12-24 18:07
面试时是把答案口述出来吗
作者:
wei2666510
时间:
2014-12-24 19:36
好像有点难噢···
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2