查看: 1339|回复: 5
收起左侧

[找工就业] 丢盒子: 应该怎么准备multi-thread?

|只看干货
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   87% (14)
 
 
12% (2)    👎

2022(1-3月)-CS本科+1-3年 | Other| 码农类General全职@Dropbox

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
我看丢盒子很喜欢问multi-thread的题. 我工作一般都没写过. 应该怎么准备multi-thread? Java还是python好? 都用什么framework?

上一篇:想问问还在国内能投简历吗
下一篇:Google fall 2022 OA
Chasedream.df 2022-7-4 03:13:39 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   89% (2686)
 
 
10% (306)    👎
  1. class KVStore(object):

  2.     def __init__(self):. 1point3acres.com
  3.         """Initializes the key-value store."""
  4.         # type: () -> None
  5.         self.txid = 0
  6.         self.actual_data = {}
  7.         self.tx_data = defaultdict()

  8.     def begin(self):
  9.         """Starts a transaction, returns a txid."""
  10.         # type: () -> int
  11.         self.txid += 1
  12.         return self.txid

  13.     def read(self, txid, key):
  14.         """Reads a value given a key, within the context of a transaction."""
  15.         # type: (int, Text) -> Optional[int]
  16.         # if txid in self.tx_data:
  17.         val_list = self.tx_data.get(key)
  18.         if not val_list:
  19.             return self.actual_data.get(key)
  20. . Waral dи,
  21.         if len(val_list) == 1:
  22.             return val_list[0][0]
  23.         else:. Χ
  24.             raise Exception("value is written by multi tx")

  25.     def write(self, txid, key, val):
  26.         """Writes a value to a key within the context of a transaction."""
  27.         # type: (int, Text, int) -> None
  28.         # if key in self.actual_data:
  29.         #     del self.actual_data[key]

  30.         if key in self.tx_data:
  31.             if txid != self.tx_data[key][0][1]:.google  и
  32.                 raise Exception("value is written by another txid")
  33.             Else:. 1point 3 acres
  34.                 self.tx_data[key] = list() ..

  35.         self.tx_data[key].append((val, txid))

  36.     def commit(self, txid):
  37.         """Commits writes to the store. The transaction may no longer be used."""-baidu 1point3acres
  38.         # type: (int) -> None
  39.         for key, val_list in self.tx_data.items():
  40.             # if not conflict
  41.             for val, version in val_list:
  42.                 if version == txid:
  43.                     self.actual_data[key] = val. 1point 3acres
  44.                 val_list.remove((val, version))
复制代码
回复

使用道具 举报

本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   89% (2686)
 
 
10% (306)    👎
当时考了一个分布式下的kv store读写操作,主要是考虑事务一致性 比如用户a 修改了key abc 但还没有commit 这时候用户b也读取了key abc 实现read serialible
回复

使用道具 举报

 楼主| CCCC1233 2022-7-4 01:12:07 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   87% (14)
 
 
12% (2)    👎
Chasedream.df 发表于 2022-7-3 13:05
当时考了一个分布式下的kv store读写操作,主要是考虑事务一致性 比如用户a 修改了key abc 但还没有commit  ...

是System Design还是Coding?
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   89% (2686)
 
 
10% (306)    👎
CCCC1233 发表于 2022-07-03 10:12:07. 1point 3 acres
是System Design还是Coding?
coding
回复

使用道具 举报

eax65536 2022-7-16 08:33:41 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (4)
 
 
20% (1)    👎
同問 推一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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