标签:rgs public 代码 class tst cep com 静态 tar
话不多说直接上代码
1 | public class MultiThread{ |
程序输出的结果:
1 | tag a,set num over |
其实此时程序会出现两种结果的输出:
1 | tag b,set num over |
1 | tag b,set num over |
这是因为int num 被static 修饰,当线程t1和t2的执行顺序不同的时候就会出现这两种结果。此时synchronized是否修饰都不影响程序的执行效果,去掉static 关键字再来观察。
1 | tag a,set num over |
两次输出的结果并不相同,各自输出了各自的预期输出值。线程之间并没有受到干扰。再synchronzied关键字前加上static ,这样便成为了类锁,整个他t1,t2中的printnum方法会存在抢占,会先执行完其一,再执行另一个,看输出结果。
1 | tag b,set num over |
标签:rgs public 代码 class tst cep com 静态 tar
原文地址:https://www.cnblogs.com/lijianming180/p/12286277.html