下午匆忙**面試了一下某司,有幾個問題沒有回答上來,總結一下:
1、zookeeper資料同步原理
讀取的時候不需要資料同步,寫操作時,follower的followerrequestprocessor會將該操作作為leader.reqest發給leader。leader發起投票,由followers進行投票,leader對投票結果進行計算決定是否通過該決議,如果通過執行該決議(事務),否則什麼也不做。
2、threadlocal原理
threadlocal作用是儲存執行緒的區域性變數,例如儲存每個執行緒自身狀態等,它之所以能夠與執行緒繫結,是因為其為每乙個使用該變數的執行緒都提供乙個變數值的副本,這樣每個執行緒都操作的是自己的副本,其原始碼如下:
public t get()
//返回null
return setinitialvalue();
}private t setinitialvalue()
3、concurrenthashmap原理
concurrenthashmap允許多個修改操作併發進行,其關鍵在於使用了鎖分離技術。它使用了多個鎖來控制對hash表的不同部分進行的修改。concurrenthashmap內部使用段(segment)來表示這些不同的部分,每個段其實就是乙個小的hash table,它們有自己的鎖。只要多個修改操作發生在不同的段上,它們就可以併發進行。
4、http請求結構
某度面試題
用過哪些js模板 單頁面應用 怎麼做快取 css,中間固定,兩邊自適應 1.後台給資料,你是怎麼處理的 2.互動遇到過什麼情況 3.複雜的互動你是怎麼考慮的 4.生成10個a,並給onclick事件 5.10w個資料,顯示到頁面,怎麼考慮 6.跨站網域名稱偽裝,xss onsubmit和submit...
某C 面試題
void getmemory char p void test void 請問執行test函式會有什麼樣的結果?答 程式崩潰。因為getmemory並不能傳遞動態記憶體,test函式中的str一直都是null。strcpy str,helloworld 將使程式崩潰。char getmemory v...
某外包面試題
vue 重要的特性 vue 子元件怎麼向父元件傳值 vue v if 和 v show 的區別 以及在編譯上有什麼不同 vue 雙向繫結的原理 oracle 分頁使用 兩個無序佇列合併成乙個有序佇列 nginx 配置,https 需要重定向的 inux 中的一些命令 springboot 和 spr...