今天去逛javaworld.com.tw看到有人在问线程同步的问题,最近对多线程很感兴趣,写了不少类似的程序,所以线程同步也是肯定要用的到的,synchronized加在函数名称中间,我记得是对对象的同步,也就是说多线程如果想保持同步,必须保证这些线程用的是一个对象。看到过synchronized写到函数里面的,但是没得感受,今天测试了一把,把synchronized写到函数内部的,就不用保证一个对象了,所有的N个不同对象都可以。这个是代码看下截图吧。
先来个synchronized写到函数内部的
运行结果截图:
可以看到2个线程是同步的来了,
再来看一下关键字写到内部的:
运行结果是和上面一样的,我就不多截图了。
再来对比下,关键字写到函数声明处,但是非一个对象的时候的代码:
来看下结果:
可以看到是没有同步的哈。这样已经很清楚了,同步到底杂用的了。。
PS:明天开始考试,我什么都不会。。