这个星期彻底弄明白了一件事, 是关于java的…
1.先来看下多线程
以上是实现多线程的2种方式, 区别是用runnable可以去再集成一个其他类.
2.静态测试
上述有四个线程, 输出结果应该是杂乱无章的, thread3实行了强制禁令, join…
一个进程只有等待其所有非守护线程结束才能终止, 这也是为什么2个while的进程需要setDaemon(true)。
3.言归正传, 这次的课程的是synchronized,会通过几个例子说明。
上述展示了2种同步代码块的写法, 猜猜输出结果吧
B_thread1 B_thread1_Sync2_Start B_thread1_Sync2_End
需要注意的是上一个锁定对象执行的方法需要等下一个执行完才行。
4.咱们改改代码
因为是四个不同的对象, 所以执行起来就是异步了的。
5.再来改一下代码
尽管上面是四个不同的对象, 但是注意方法是静态方法, 而且synchronized(SyncThread.Class)锁定的是类, 所以其实也是同步执行的。
有人说试试相同对象, 结果是一样的。
6.再来看最后一种情况。
上面该是如何执行的呢? 其实只要明白一点就行了, 对象锁和类锁是独立的,互不干扰。
今天就到这, 以后博客还是会放在前端的react技术站上.