-
場(chǎng)景4,分布式計(jì)算
查看全部 -
場(chǎng)景3,線程安全
查看全部 -
場(chǎng)景2,線程資源一致性
查看全部 -
場(chǎng)景1,線程資源持有
查看全部 -
??? 線程資源一致性(取自JDBC):
????????????如圖所示,請(qǐng)求響應(yīng)虛線框中Part1、 PartN代表你的一個(gè)會(huì)話中的N個(gè)程序都要去完成一些事情,他們整體串起來就是一個(gè)事務(wù)。
????????Part1更新客戶信息,Part2更新訂單的信息,Part3更新訂單對(duì)應(yīng)外部的交易流水號(hào),Part4 支付回來。
????????以上操作必須保證原子性的同步更新,這種情況下 1~ N都會(huì)走 JDBC Connection
查看全部 -
??? 線程資源一致性(取自JDBC):
????????????如圖所示,請(qǐng)求響應(yīng)虛線框中Part1、 PartN代表你的一個(gè)會(huì)話中的N個(gè)程序都要去完成一些事情,他們整體串起來就是一個(gè)事務(wù)。
????????Part1更新客戶信息,Part2更新訂單的信息,Part3更新訂單對(duì)應(yīng)外部的交易流水號(hào),Part4 支付回來。
????????以上操作必須保證原子性的同步更新,這種情況下 1~ N都會(huì)走 JDBC Connection 。
????????
查看全部 -
線程資源持有:
????????編寫一個(gè)程序的時(shí)候,多個(gè) class 會(huì)依賴或使用同一份用戶數(shù)據(jù);這一份用戶數(shù)據(jù)存在哪里比較好?
????????在程序中,每一個(gè)線程都是一個(gè)session,是客戶端與服務(wù)端進(jìn)行交互的一個(gè)過程;在這種情景中,只要程序執(zhí)行的線程相同的情況下,所操作的用戶就是相同的。
????????把用戶數(shù)據(jù)在執(zhí)行程序1時(shí)就創(chuàng)建一個(gè) ThreadLocal的本地變量,放入到 ThreadLocalMap 的 x 變量中,在執(zhí)行 程序2、程序3 時(shí)就可以拿到當(dāng)前線程分配到的用戶,而不會(huì)影響到其他線程的資源變量。
查看全部 -
ThreadLocal源碼中AtomicInteger是干嘛用的,事后查一下。
查看全部 -
原子性,就是ab兩個(gè)操作,要么都做,要么都不做。
一致性,a扣掉的錢和b加上的錢要一致。
隔離性,多事務(wù)并發(fā)的順序,對(duì)結(jié)果并不影響。
持久性,對(duì)于a扣掉了錢,突然宕機(jī)了,b要能保持好一致性。
查看全部 -
老師的意思是原來是對(duì)add()方法加鎖。實(shí)際生產(chǎn)中add()方法里可能存在對(duì)數(shù)據(jù)庫即IO或者redis即內(nèi)存等一些操作。如果對(duì)這一步進(jìn)行加鎖。每一次都要等這部分的時(shí)間。
而現(xiàn)在把鎖加載了set上面了。就變成小面基了。只是操作了下set,往里面add一個(gè)元素而已。
查看全部 -
看一下這一行代碼有點(diǎn)難度理解的時(shí)候,回頭再理解一下。
查看全部 -
關(guān)于jdbc保持事務(wù)一致性,這些請(qǐng)求都是一個(gè)線程發(fā)生的,那我就用一個(gè)鏈接去做。要知道是不是一個(gè)線程發(fā)生的,可以通過ThreadLocalMap
查看全部 -
當(dāng)x.remove()把Main線程里面的set值去掉了,那么本來因?yàn)閟et值之后不走initialValue()方法這回就要走了
查看全部 -
ThreadLocal的簡單用法。不去get不會(huì)去觸發(fā)intitialValue()這個(gè)方法
查看全部 -
threadLocal 含義、特點(diǎn)和使用場(chǎng)景。
查看全部
舉報(bào)