求大神帮忙看一个笔试题,关于区块链的,不知道哪里错了

gouyingqi · · 899 次点击
谢谢回复,说实话这个题目本来就不太明确,我也没准确理解他到底想考什么。 我是看题目里说实现“提交前预处理”环节,所以没写并发过程,只是简单模拟啊。 还有MUTEX效率应该是低于chan的吧所以我特意用了chan... 不管怎么说应该没错啊,那边给我的回复直接是“未实现功能”就不懂了
#2
更多评论
平时不太用chan, 用mutex用的多一些, 我感觉你这里确实有问题, 因为你并不是利用队列实现了并发, 如果是我做的话, 我会开一个[]数组或者切片来存放所有的block, 然后利用协程来并发做验证. 最后利用一个单独的协程来检查数组中已经完成的block并编号之后丢到提交协程中, 中间会有mutex的介入,可能会有读写锁, 这样做效率应该是不低的. 这种思想类似于map reduce. 个人浅见,说错了勿怪.
#1
按照我的标准判断你确实没有实现示意图中的功能. 人家的本意就是让你并行处理一个队列中的block然后加锁串行提交保证编号唯一. 你只是做到了串行提交没有做到并行. mutex比chan的性能要高, 这个已经有人验证过了.
#3