x*****0 发帖数: 452 | 1 下面是一道pure storage常出现的面试题:
我面过,电面就是一个api,每次register的时候需要call一个callback,但是在event
被触发之前call的callback都不能成功被call,在event被
触发之后call的都可以,同时之前delay的call也要成功call,让写具体的function如
何实现,之后还实现单线程多线程来着。
第一轮问的是一个api,每次register的时候需要call一个callback,但是在event被触
发之前call的callback都不能成功被call,在event被触发之后call的都可以,同时之
前delay的call也要成功call,让写具体的function如何work。还问了multithreading
的问题。
网友的简单答案:
是even设成一个全局变量每次没触发就入waitqueue么。。。多线程就给加个锁?
exactly, 我就是这么做的,async的queue,加一个全局flag,多线程就是mutex,lock
unlock,期间多线程的时候有些错,他提示改过来了,我多线程比较弱,后来挂了。
加油!
请问大家这道题究竟怎么解,如果有做过的朋友,能不能更加清楚的clarify一下这道
题。谢谢了。 |
x*****0 发帖数: 452 | |
T******7 发帖数: 1419 | 3 我觉得你需要用到ExecutorService AsyncHandler ,concurrentLinkedQueue 处理多
线程 |
x*****0 发帖数: 452 | |
x*****0 发帖数: 452 | 5 关于这道题目:
(1) 在触发一个event之前,是不是可以register 多个events?
(2) 题目中说:event 触发之后 的call都可以?是不是是说,event触发之后,可以
随意的call 那个callback
(3) 关于event的触发, 如果之前register了很多events,分别用1,2,3...n进行标识
。是不是可以任意的触发其中的一个event
(4) 题目中说:同时之前delay的call也要成功的call,这些delayed的calls,按照
fifo的顺序被call吗?
这是我不明白的一些地方,能不能帮我看看。谢谢了啊
【在 T******7 的大作中提到】 : 我觉得你需要用到ExecutorService AsyncHandler ,concurrentLinkedQueue 处理多 : 线程
|
A*******e 发帖数: 2419 | 6 不就是一个池子,一个flag吗?一开始为假,积累callback,为真后,将所有累积的
callback执行。
event
multithreading
【在 x*****0 的大作中提到】 : 下面是一道pure storage常出现的面试题: : 我面过,电面就是一个api,每次register的时候需要call一个callback,但是在event : 被触发之前call的callback都不能成功被call,在event被 : 触发之后call的都可以,同时之前delay的call也要成功call,让写具体的function如 : 何实现,之后还实现单线程多线程来着。 : 第一轮问的是一个api,每次register的时候需要call一个callback,但是在event被触 : 发之前call的callback都不能成功被call,在event被触发之后call的都可以,同时之 : 前delay的call也要成功call,让写具体的function如何work。还问了multithreading : 的问题。 : 网友的简单答案:
|
x*****0 发帖数: 452 | 7 谢谢回复啊。看了你的答案,好像明白了一点。
请问一下,这个池子在c++中用哪种数据结构比较好。题目中说多线程怎么做,这里的
多线程,按照你的理解,究竟是怎样对这个题目产生影响。是说每个线程的run函数都
会执行题目中让实现的function吗?
【在 A*******e 的大作中提到】 : 不就是一个池子,一个flag吗?一开始为假,积累callback,为真后,将所有累积的 : callback执行。 : : event : multithreading
|
A*******e 发帖数: 2419 | 8 任何支持遍历的容器都可以。
flag在多线程下需要保护,保证是原子操作。
【在 x*****0 的大作中提到】 : 谢谢回复啊。看了你的答案,好像明白了一点。 : 请问一下,这个池子在c++中用哪种数据结构比较好。题目中说多线程怎么做,这里的 : 多线程,按照你的理解,究竟是怎样对这个题目产生影响。是说每个线程的run函数都 : 会执行题目中让实现的function吗?
|
x*****0 发帖数: 452 | 9 能帮忙给出pseudocode吗,对着代码更好理解一些。谢谢了。
【在 A*******e 的大作中提到】 : 任何支持遍历的容器都可以。 : flag在多线程下需要保护,保证是原子操作。
|