|
下午自己在学校照了几张照片,但看上去效果很差啊
首先是俺们计院楼
寝室楼下

|
今天亚军走了 估计要三周才能回来
祝福她工作顺利哈!
|
我的心永远地献给了WE2002
纵使现在的PS2画面多么逼真、场面多么真实,
在我心中,2002像是初恋一样,永远是最美好的,谁也别想替代...
从2002年9月第一次接触2002起,
已经数不清自己所玩过的场数。
利物浦联赛,
冠军杯,世界杯,美洲杯、欧洲杯、非洲杯....
巴蒂斯图塔、齐达内、奥科查、卡纳瓦罗、克鲁伊维特...
.....
6年过去了,生活的压力取代了当时的无忧无虑。
现在早已没有那时的激情。
但we2002陪我走过的日子、一个个难忘的夏夜通宵,
带来的欢乐、带走的忧愁,
永远珍藏心底。
|
发现自己有个不好的毛病:盲目的嗜书...
有时看到本好书,甚至自己不一定立即需要,脑袋里却一直盘旋着书的封面,有想买的冲动。
还好一般都抑制住了。
今天控制不住了,《UNIX进程间通信》,R.Stevens的遗著,
价格才四十多,又8折,纸张也较厚,
实在按捺不住,买下了影印版,
准备花9-10天左右迅速过一遍~~~
|
最近这短短的几天,对于我来说却似十分漫长。甚至决定了生命轨迹的某一小部分。
21号,028-86618888(银河),TX送给我一个似是“添头”的offer;
而当天晚上,巨人网络宣讲.
现场投过简历,静静等待。
终于22:57分,028-86786666(皇冠)给了笔试通知,时间第二天早上9:30;而那时,另一个地方将在签约。
...
犹豫了片刻还是选择了笔试,破釜沉舟。
没有浪费我的选择。意料之中,笔试结果近乎完美。10月22日晚上21点半,接到了028-86786666面试通知。
第二天,10.23日,晨10点28分。
我几乎是垂头丧气的从面试房间出来,脑袋嗡嗡作响:完了,两头都是空!
...
然后电视剧般的情形出现了:手机一阵震动,腾讯催签约的短信。
我心里突然又燃起了一丝希望..什么都不敢想,猛地冲进电梯,下楼打的直奔学校取三方协议。
按照短信中的地址,来到了办公大楼。
更戏剧的出现了:当我到了公司办公区,HR小姐正巧刚下楼吃饭去了。
就是这几分钟的蝴蝶效应。假如我早来了几分钟,假如我在楼下不曾犹豫就上去,她很可能还没走,偶一定是签了...
坐在休息室喝着茶,头脑逐渐清醒,一个声音在耳边回旋:不能签啊,否则会废了自己...
我猛地站起来,机械地奔向电梯,逃离这座楼
...
坐在楼下的花坛边,我开始发愣:真的放弃了吗?今年形势这么严峻,难道不能签了再跳?可是,又真的要签吗?恐怕掉进这个职位,就再也爬不到研发岗!
时间一分一秒过去,看看表,快13点了,头脑里仍然是一片混乱,肚子竟然都不觉得饿。
终于咬咬牙,站起来梦游般地走开,背后的大楼离我越来越远,那只企鹅,也离我越来越远..
晚上,23:38分,028-86786666再次光临,当听筒里传来“您好,这里是巨人网络,欢迎你明天1点半来皇冠假日参加签约仪式”,感觉像做梦了一般。
人生中如果总是这么多惊喜就好了,自己努力创造吧!
|
先是9月23的百度,首战失利,笔试就挂....
然后是淘宝和网易,都有面试机会,淘宝已经鄙视我,网易还没面,估计没戏;
再是腾讯,大牛,没抱什么希望只是来学习学习。
很意外笔试题非常基础,估计上了90分。
但是一面一塌糊涂,居然也有2面通知?更意外。
怀着一颗平常心,希望能借此涨点经验吧。
昨天的阿里巴巴笔试面试:
很惊讶他们的效率,上午笔试,中午就面试通知。下午好不容易在6点半二面结束,还是被鄙视了。有点冤,那人看我是数学院的,没项目经验, 就已经想打发我了。只问了一题我答的也很好,他反问:“你怎么知道这些的?”。我:“¥#@…*#”。他没再说,就随意搪塞几句让我回去了。
回来的路上精神一直很沮丧。
|
刚看过java线程,于是尝试着模拟一下经典的哲学家就餐问题。
总是看别人的还是不行,自己动手,收获要多一些。
下面这个最终结果,修改过几次。
比如关于wait()调用,开始没注意到调用它会释放监视器,然后发现了。又想查一下jdk文档确认,诧异地发现没有释放监视器的说明。再仔细看一遍,原来是中文版把release错误地翻译成了发布...应该是释放
还有是死锁:开始的版本会发生5个人都拿起了左手的叉子...
后来改成如果拿右边叉子失败,释放左手的,不断重试
sleep函数也很重要,否则虽然运行正确,结果却很怪异
class Fork
{
private boolean lockon;
public Fork(){ lockon = false; }
public boolean isLocked()
{
return lockon == true;
}
public synchronized void Lock()
{
while (lockon == true)
{
try
{
wait();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
lockon = true;
}
public synchronized void unLock()
{
lockon = false;
notifyAll();
}
}
class Philo extends Thread
{
private char name; //哲学家的名字:A B C D E
private static Fork[] forks = new Fork[5];//共用5根叉子
private Fork left;
private Fork right;
static
{
for (int i=0; i<5; i++)
{
forks[i] = new Fork();
}
}
public Philo(int i)
{
left = forks[i];
right = forks[(i+1)%5];
}
public void setMyName (char name)
{
this.name = name;
}
public char getMyName ()
{
return this.name;
}
public void getLeftFork()
{
left.Lock();
}
public boolean getRightFork() //确保拿了左筷子才拿右筷子,右不可拿则释放左筷子
{
if ( right.isLocked()) //破坏死锁四大条件之一:占有且等待
{
left.unLock();
System.out.println(getMyName()+" put left fork");
return false;
}
else
{
right.Lock();
return true;
}
}
public void putLeftFork()
{
left.unLock();
}
public void putRightFork()
{
right.unLock();
}
public void run()
{
while(true)
{
boolean succ = false;
System.out.println(getMyName()+" is thinking");
while (succ != true)
{
getLeftFork();
System.out.println(getMyName()+" get left fork");
if(getRightFork())
{
succ = true;
System.out.println(getMyName()+" get right fork");
}
try{
Thread.sleep((long)(Math.random()*1000));
}catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(getMyName()+" is eating");
try{
Thread.sleep((long)(Math.random()*2000));
}catch (InterruptedException e) {
e.printStackTrace();
}
putRightFork();
putLeftFork();
System.out.println(getMyName()+" eaten done!");
}
}
}
public class runPhilo
{
public static void main( String[] args )
{
Philo[] philosopher = new Philo[5];
char ch = 'A';
for ( int i=0; i<5; i++)
{
philosopher[i] = new Philo(i);
philosopher[i].setMyName(ch++);
}
for (int i=0; i<5; i++)
{
philosopher[i].start();
}
System.out.println("Main thread is running");
}
}
|
|
|