?????????????????????
????????????????е?????????????е???????????????CPU???????????Щ?????????????????????????????????Щ??????????????????????????Takipi?У???????????????????????????????????????????????????????MAX_PRIORITY??????Щ?????????μ???????????????????????????Щ???????????????????????JVM??????????????????????Щ????????????????????
??????????????棬??????????????????????????????????Java?????????????????????????????????????????????????????Linux?????????“-XX:+UseThreadPriorities”??????????????????????????????????????????????????????顣??Linux??????????????Java??????????????????????е????Linux????1??99??????????????????????-20??20?????????????????趨????????????????????CPU??????????????????????????????????????????????????
?????????
????3.??????洢
???????????????????????в????ThreadLocal????Thread?????????????????java.lang.ThreadLocal???????????????????洢????????????????????????????????????????洢????????????????????????????????????????????????????????????????????????????Щ???????????????洢??Thread??????????????????????????????????????м???????????????
????????ThreadLocal?????????????????????????????????????е?????????????????????????????????????????????????????????????????????????????????????????У?ThreadLocal????洢?????????????????????????????????????

 

public static class CriticalData
{
public int transactionId;
public int username;
}
public static final ThreadLocal<CriticalData> globalData =
new ThreadLocal<CriticalData>();

??????????????ThreadLocal??????????? globalData.set()??globalData.get()?????????????в??????
??????????????????????
??????????ThreadLocal?????????洢????ID??????????г???δ????????????????????????????????????UncaughtExceptionHandler???????Thread??????????????????????????????????????е???UncaughtExceptionHandler??????????κ??????????????????????????????????????????????Thread?????????????????????б?????????????????????Щ???????????????????????UncaughtExceptionHandler???????????o?????????????????????????ThreadLocal??
?????????????????????
????System.err.println("Transaction ID " + globalData.get().transactionId);
?????????????Щ??????????м????????????????洢?????????ThreadLocal??????????д?????÷?????????????????????????棬??????????????????????????????????á??????????????????????CPU????????????????????????ThreadLocal???????????????????????????????????????????????????????????????????????????????????????????????????£????????????
????4. ?????????????
????????????Thread???????е????????????????????????????????????????????仰??????????????????????????????????????????????????????????????м???????????????????????????ó??????????????????????????????????????????????????е????????????????????????????????????????????????Boolean .setDaemon(true)??.isDaemon()?????????????????????
????????????????????
?????????????????????????????????????????????????ó????????????????????????????Щ?鷳?£???????????????????????????????????????????????????????????????????????????????????????????????????????????????????Щ????????????????????????????£???Щ????????????ж???
????????
????5. ????????????Processor Affinity??
????????????????????????????????????????????????????????????????????????????????????CPU?????????ζ????????????????????????????????????CPU??????С??????????????????????????????????????????????????????????????????????????????????????????????
?????????????????CPU???檔????????????????????????У???????????????????????????????????????????????CPU???????????б??????????????????????????????????????????????????????????????????????????У???????????????????????CPU????????????????????????????????????????????????????????????????????????????????????????С????л?CPU??????
???????????????????????????????????????????????ж???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????
????Java??????????????????????????????????????????д????????Linux?????????????taskset?????????y???????????????????????????Java?????????У??????????????????????????CPU???
????taskset -c 1 “java AboutToBePinned”
????????????????????????????
????taskset -c 1 <PID>
??????????????????????Щ??????С??????????????????????????????????Java-Thread-Affinity???????????OpenHFT??Peter Lawrey?????????????????????????????????????????????????????????????????????????????????????????ο?????Github????????
????AffinityLock al = AffinityLock.acquireLock();
??????????????????????????Щ??????????——?????????????????????CPU——??Github???????????????
????????
????????????????????????5???????????????????洢?????????????????????????????????????????????????????????????????μ??????????????????????????й????????????????????????????????