推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 1760|回复: 15
收起左侧

Goole/Youtube第一次电面

[复制链接] |试试Instant~ |关注本帖
tcswdys 发表于 2015-2-18 04:32:37 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类 硕士 全职@Google - 网上海投 - 技术电面 |Other

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
Phone Screen, 上来个阿三就开始问问题,口音略听不清。。。。
.1point3acres缃
就一题多线程的, 如果已经set, set()无操作 ,wait()清除set,如果没有set,set() 就set,wait()坐等直到set。
v = 0
s = semaphore()

def increment:
  while True:
   v = v + 1
   set(s)

def display:
  while True:
    wait(s)
    print v
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
问打印的结果如何。

开始挺纠结的,后来慢慢理清思路也还好,可能错了一点。
求onsite,求offer啊~


评分

1

查看全部评分

zq13667243992 发表于 2015-2-18 05:57:57 | 显示全部楼层
主程序是啥?? 我星期五要面
回复 支持 反对

使用道具 举报

 楼主| tcswdys 发表于 2015-2-18 06:05:45 | 显示全部楼层
zq13667243992 发表于 2015-2-18 05:57
主程序是啥?? 我星期五要面

increment和display同时运行,没有主程序。。
回复 支持 反对

使用道具 举报

mattsun 发表于 2015-2-18 08:53:58 | 显示全部楼层
"wait坐等直到set"什么意思?不是已经set了吗
回复 支持 反对

使用道具 举报

 楼主| tcswdys 发表于 2015-2-18 11:07:07 | 显示全部楼层
mattsun 发表于 2015-2-18 08:53
"wait坐等直到set"什么意思?不是已经set了吗

set过一次后执行wait会清除set
回复 支持 反对

使用道具 举报

mattsun 发表于 2015-2-18 12:17:44 | 显示全部楼层
tcswdys 发表于 2015-2-18 11:07
set过一次后执行wait会清除set

打印的结果是唯一解吗?我觉得可能有多种情况,看两个函数在不同的线程/进程里面的执行顺序。
最明显的就是打印出1,2,3,4,5...这种情况就是每次display都先执行,然后wait等待set,等到set之后print出来的v+1了
但是还有可能就是display一直没机会执行(或者increment执行比较快),这样increment就一直执行,v一直变大,然后遇到set没有反应又进入下一次while循环。这样打印出来的结果就会skip掉一些数字。

lz怎么回复的?
回复 支持 反对

使用道具 举报

pulpfree009 发表于 2015-2-19 12:46:53 | 显示全部楼层
1个小时,就做这么一个题?
回复 支持 反对

使用道具 举报

 楼主| tcswdys 发表于 2015-2-21 04:17:56 | 显示全部楼层
mattsun 发表于 2015-2-18 12:17
打印的结果是唯一解吗?我觉得可能有多种情况,看两个函数在不同的线程/进程里面的执行顺序。
最明显的就 ...
. 鍥磋鎴戜滑@1point 3 acres
结果不是唯一的,把所有的都说给他,有skip,有重复, 有顺序打印
回复 支持 反对

使用道具 举报

 楼主| tcswdys 发表于 2015-2-21 04:18:19 | 显示全部楼层
pulpfree009 发表于 2015-2-19 12:46. From 1point 3acres bbs
1个小时,就做这么一个题?

嗯。。。 于是今天收到second phone screen了。。。
回复 支持 反对

使用道具 举报

 楼主| tcswdys 发表于 2015-2-21 04:18:26 | 显示全部楼层
pulpfree009 发表于 2015-2-19 12:46
1个小时,就做这么一个题?

嗯。。。 于是今天收到second phone screen了。。。
回复 支持 反对

使用道具 举报

无聊的ttt 发表于 2015-2-21 05:55:55 | 显示全部楼层
lz为啥会有重复的情况?
回复 支持 反对

使用道具 举报

pulpfree009 发表于 2015-2-21 12:31:34 | 显示全部楼层
同问如上,什么情况,会出现重复的呢?
回复 支持 反对

使用道具 举报

woquuuu 发表于 2015-2-22 07:57:58 | 显示全部楼层
请问lz申的是什么职位啊?
skill expertise是什么?
祝lz早日拿到offer!!
回复 支持 反对

使用道具 举报

mattsun 发表于 2015-2-27 14:55:03 | 显示全部楼层
tcswdys 发表于 2015-2-21 04:17
结果不是唯一的,把所有的都说给他,有skip,有重复, 有顺序打印
.鐣欏璁哄潧-涓浜-涓夊垎鍦
同楼上,楼上的楼上问,为何会重复?
回复 支持 反对

使用道具 举报

whitenights 发表于 2015-2-27 15:10:02 | 显示全部楼层
出现重复的情况:
  1. v = 0.1point3acres缃
  2. s = semaphore()

  3. def increment:
  4.   while True:. 1point3acres.com/bbs
  5.    v = v + 1 // (1
  6.    set(s)  // (2

  7. def display:
  8.   while True:
  9.     wait(s) // (3
  10.     print v // (4
复制代码
假设此时 v = 1, 程序在 (2, (3,然后发生了如下顺序执行:
2 => 1 (v++) => 4 (print 2) => 3 => 2 => 4 (print 2). 鍥磋鎴戜滑@1point 3 acres
出现了重复的2
回复 支持 反对

使用道具 举报

milanelllo13 发表于 2015-6-10 12:53:58 | 显示全部楼层
怎么这么非主流的面试><
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-8-22 17:32

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表