Java????5????ü???
???????????? ???????[ 2015/1/22 13:13:25 ] ??????????????? java
?????????????????????
????????????????е?????????????е???????????????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???????????????????洢?????????????????????????????????????????????????????????????????μ??????????????????????????й????????????????????????????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11