Java??????
???????????? ???????[ 2016/12/28 9:55:12 ] ??????????????????? Java ??
????publicvoidh() {
????// other operations should not be locked...
????System.out.println(Thread.currentThread().getName()
????+":not synchronized in h()");
????lock.lock();
????try{
????for(inti = 0; i < 5; i++) {
????System.out.println(Thread.currentThread().getName()
????+":synchronized in h()");
????try{
????TimeUnit.SECONDS.sleep(3);
????}catch(InterruptedException e) {
????e.printStackTrace();
????}
????}
????}finally{
????lock.unlock();
????}
????}
????publicstaticvoidmain(String[] args) {
????finalResource3 rs =newResource3();
????newThread() {
????publicvoidrun() {
????rs.f();
????}
????}.start();
????newThread() {
????publicvoidrun() {
????rs.g();
????}
????}.start();
????rs.h();
????}
????}
?????????
????Thread-0:not synchronized in f()
????Thread-0:synchronized in f()
????main:not synchronized in h()
????Thread-1:not synchronized in g()
????Thread-0:synchronized in f()
????Thread-0:synchronized in f()
????Thread-0:synchronized in f()
????Thread-0:synchronized in f()
????main:synchronized in h()
????main:synchronized in h()
????main:synchronized in h()
????main:synchronized in h()
????main:synchronized in h()
????Thread-1:synchronized in g()
????Thread-1:synchronized in g()
????Thread-1:synchronized in g()
????Thread-1:synchronized in g()
????Thread-1:synchronized in g()
????Resource4.java
????packagecom.zj.lock;
????importjava.util.concurrent.TimeUnit;
????importjava.util.concurrent.locks.Lock;
????importjava.util.concurrent.locks.ReentrantLock;
????publicclassResource4 {
????privateLocklock1=newReentrantLock();
????privateLocklock2=newReentrantLock();
????privateLocklock3=newReentrantLock();
????publicvoidf() {
????// other operations should not be locked...
????System.out.println(Thread.currentThread().getName()
????+":not synchronized in f()");
????lock1.lock();
????try{
????for(inti = 0; i < 5; i++) {
????System.out.println(Thread.currentThread().getName()
????+":synchronized in f()");
????try{
????TimeUnit.SECONDS.sleep(3);
????}catch(InterruptedException e) {
????e.printStackTrace();
????}
????}
????}finally{
????lock1.unlock();
????}
????}
????publicvoidg() {
????// other operations should not be locked...
????System.out.println(Thread.currentThread().getName()
????+":not synchronized in g()");
????lock2.lock();
????try{
????for(inti = 0; i < 5; i++) {
????System.out.println(Thread.currentThread().getName()
????+":synchronized in g()");
????try{
????TimeUnit.SECONDS.sleep(3);
????}catch(InterruptedException e) {
????e.printStackTrace();
????}
????}
????}finally{
????lock2.unlock();
????}
????}
????publicvoidh() {
????// other operations should not be locked...
????System.out.println(Thread.currentThread().getName()
????+":not synchronized in h()");
????lock3.lock();
????try{
????for(inti = 0; i < 5; i++) {
????System.out.println(Thread.currentThread().getName()
????+":synchronized in h()");
????try{
????TimeUnit.SECONDS.sleep(3);
????}catch(InterruptedException e) {
????e.printStackTrace();
????}
????}
????}finally{
????lock3.unlock();
????}
????}
????publicstaticvoidmain(String[] args) {
????finalResource4 rs =newResource4();
????newThread() {
????publicvoidrun() {
????rs.f();
????}
????}.start();
????newThread() {
????publicvoidrun() {
????rs.g();
????}
????}.start();
????rs.h();
????}
????}
?????????
????Thread-0:not synchronized in f()
????Thread-0:synchronized in f()
????main:not synchronized in h()
????main:synchronized in h()
????Thread-1:not synchronized in g()
????Thread-1:synchronized in g()
????Thread-0:synchronized in f()
????main:synchronized in h()
????Thread-1:synchronized in g()
????Thread-0:synchronized in f()
????main:synchronized in h()
????Thread-1:synchronized in g()
????Thread-0:synchronized in f()
????main:synchronized in h()
????Thread-1:synchronized in g()
????Thread-0:synchronized in f()
????main:synchronized in h()
????Thread-1:synchronized in g()
????synchronized??lock??????:
????Lock ?????????????????????? synchronized ???? JVM ??????????
????synchronized ???????????????????????JVM ??????????????????????????????????????????????????? Lock ?????????? JVM ?????????????????????????? finally ?????????????????????????
??????????????????????????£??????????????????£?synchronized???????????????????????????????????????synchronize???????????????????????ù?5.0???????????????????
????ReentrantLock:
????ReentrantLock????????????????????????????????????????Interrupt???????synchronized??????????Interrupt???????????????????????????£??????????synchronized???????????????????????synchronized?????????????????ü????????ReentrantLock????????????
????Atomic:
??????????????????????????£??????synchronized?????????????????????????????????Atomic???????????ReentrantLock??????????????????????????????????????δ??????????????Atomic???????????????????Ч???????????????Atomic????????
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????
??????
Java???????????Щ???????????????Java????????????????Java?б???Map????????Java Web???????????????Java??????????????д?????Java????????7???????????????????????(java .net ?????)???Java??????????Python??????Java webdriver??λ????????′????е?????Java??д??????????????????Java???????????????JavaScript????????????Java?????????????????? Java???????10??????????????Java?м????????????????java???????ü???????????м???????????????????

???·???
??????????????????
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????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????