收到the body shop 的东西,居然都是大半瓶# Fashion - 美丽时尚
o*n
1 楼
从这里学到不少,回报大家。
G家。上来聊项目,10分钟。
然后来三个题。
第一题,给两段code,分别运行在不同的thread,汇编写的,两快code在register和两
快共享memory上相互读写,中间还穿插各种loop和branch,要求求出一指定register的
value。一眼看上去我就晕了,冷静后我挑出重点code,说是个consumer/producer low
level execution sequence problem in assembly。这两块code都没加锁,所以执行
的顺序排列组合下有四种可能,我搞出了一种可能,挺琐碎,又紧张,花了不少时间,
第二个可能正要搞他说算了。
第二题算法,字符串操作,我用两指针,几下就搞完了,边搞边讲,他说correct。面
完后我自己测了下,编译没过,原因是官给的input string是const,我定义的临时指
针没有const,编译报错,算是bug了,用const char*强制转换一下就过,测试都对。
第三题,实现多个producer和多个consumer,没有别的提示。这个我熟,说整个mutex
保护写,整个semaphore来保护读,bla bla,官表示赞同,写c++ class,两个
threading函数,边写边解释,也很快糊弄出来了。官表示赞赏,我说我要检查一遍,
然后说没啥问题,官表示OK。面完后我复盘,发现producer的mutex lock晚了一步,正
确的应该是放在最开始,而我是放在acquire semaphore之后,这样一个producer没问
题,但多producer deadlock概率很高,算是大bug了,官也没问我有没deadlock,要是
问了,我当场就能改。
然后我问问题,bla bla...整个面过程超过原定45分钟,达一小时。
两个code都有bug,感觉要挂。官是老印,口音重。
我是工作了几年的,从有跳槽念头到现在就20天,准备十分匆忙,算法都忘了,所以天
天看算法,没想到尽考我concurrence. 我简历里提到懂concurrence,assembly,所以
被问了这两个问题。
G家。上来聊项目,10分钟。
然后来三个题。
第一题,给两段code,分别运行在不同的thread,汇编写的,两快code在register和两
快共享memory上相互读写,中间还穿插各种loop和branch,要求求出一指定register的
value。一眼看上去我就晕了,冷静后我挑出重点code,说是个consumer/producer low
level execution sequence problem in assembly。这两块code都没加锁,所以执行
的顺序排列组合下有四种可能,我搞出了一种可能,挺琐碎,又紧张,花了不少时间,
第二个可能正要搞他说算了。
第二题算法,字符串操作,我用两指针,几下就搞完了,边搞边讲,他说correct。面
完后我自己测了下,编译没过,原因是官给的input string是const,我定义的临时指
针没有const,编译报错,算是bug了,用const char*强制转换一下就过,测试都对。
第三题,实现多个producer和多个consumer,没有别的提示。这个我熟,说整个mutex
保护写,整个semaphore来保护读,bla bla,官表示赞同,写c++ class,两个
threading函数,边写边解释,也很快糊弄出来了。官表示赞赏,我说我要检查一遍,
然后说没啥问题,官表示OK。面完后我复盘,发现producer的mutex lock晚了一步,正
确的应该是放在最开始,而我是放在acquire semaphore之后,这样一个producer没问
题,但多producer deadlock概率很高,算是大bug了,官也没问我有没deadlock,要是
问了,我当场就能改。
然后我问问题,bla bla...整个面过程超过原定45分钟,达一小时。
两个code都有bug,感觉要挂。官是老印,口音重。
我是工作了几年的,从有跳槽念头到现在就20天,准备十分匆忙,算法都忘了,所以天
天看算法,没想到尽考我concurrence. 我简历里提到懂concurrence,assembly,所以
被问了这两个问题。