java中synchronized的用法详解(the usage of java in synchronized)

java中synchronized的用法详解(the usage of java in synchronized)

ID:8557020

大小:29.70 KB

页数:31页

时间:2018-04-01

java中synchronized的用法详解(the usage of java in synchronized)_第1页
java中synchronized的用法详解(the usage of java in synchronized)_第2页
java中synchronized的用法详解(the usage of java in synchronized)_第3页
java中synchronized的用法详解(the usage of java in synchronized)_第4页
java中synchronized的用法详解(the usage of java in synchronized)_第5页
资源描述:

《java中synchronized的用法详解(the usage of java in synchronized)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、java中synchronized的用法详解(TheusageofJavainsynchronized)TheusageofJavainsynchronizedThekeywordoftheJavalanguage,whenitisusedtomodifyamethodorablockofcode,canguaranteethatatthesametimeatmostonlyonethreadexecutesthecode.First,whentwoconcurrentthreadsaccessthesynchronized(this)synchroniz

2、ationblockinthesameobjectobject,onlyonethreadcanbeexecutedatatime.Anotherthreadmustwaitforthecurrentthreadtoexecutethecodeblockbeforeexecutingthecodeblock.Two,however,whenathreadaccessesasynchronized(this)synchronizationblockofobject,anotherthreadcanstillaccessthenonsynchronized(t

3、his)synchronizationcodeblockintheobject.Threeand,inparticular,whenathreadaccessesasynchronized(this)synchronizationblockofobject,otherthreadswillblockaccesstoallothersynchronized(this)synchronouscodeblocksinobject.Thefourandthirdexamplesarealsoapplicabletoothersynchronouscodeblock

4、s.Thatis,whenathreadaccessesasynchronized(this)synchronizationblockofobject,itgetstheobjectlockoftheobject.Asaresult,otherthreadstemporarilyblockaccesstoallsynchronouscodepartsoftheobjectobject.Five.TheaboverulesarealsoapplicabletootherobjectlocksIllustrate:First,whentwoconcurrent

5、threadsaccessthesynchronized(this)synchronizationblockinthesameobjectobject,onlyonethreadcanbeexecutedatatime.Anotherthreadmustwaitforthecurrentthreadtoexecutethecodeblockbeforeexecutingthecodeblock.Packageths;Public,class,Thread1,implements,Runnable{Public,void,run(){Synchronized

6、(this){For(int,I=0,I,<5,i++){System.out.println(Thread.currentThread().GetName()+"synchronizedloop"+i;}}}Public,static,void,main(String[],args){Thread1T1=new,Thread1();Thread,Ta=new,Thread(T1,A);Thread,TB=new,Thread(T1,B);Ta.start();Tb.start();}}Result:Asynchronizedloop0Asynchroni

7、zedloop1Asynchronizedloop2Asynchronizedloop3Asynchronizedloop4Bsynchronizedloop0Bsynchronizedloop1Bsynchronizedloop2Bsynchronizedloop3Bsynchronizedloop4Two,however,whenathreadaccessesasynchronized(this)synchronizationblockofobject,anotherthreadcanstillaccessthenonsynchronized(this

8、)synchronizationcodeblockintheobj

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。