线程锁

来源:互联网 发布:杨辉三角c语言程序 最 编辑:程序博客网 时间:2024/06/01 09:44

线程:继承Thread类或者实现Runable方法

线程的同步是为了防止多个线程可以访问同一个数据对象,对数据造成破坏。

注意:每个对象都有一把内置锁,当一个线程获得了锁之后,其他线程就无法获得锁,直到第一个对象释放锁。

synchronized可以修饰方法或者代码块,当线程睡眠时,其他线程仍处于等待状态。

在线程中常用的sleep()和wait()方法,接下来讲讲这两个方法的区别:

首先,这两个方法不是一个类下的,sleep是Thread类下的,notify()是Object类下的;

其次,sleep()方法没有释放锁,而wait()方法释放了锁,进入线程等待池等待,其他线程可以使用CPU;

最后,sleep()方法和wait()方法的使用范围不同,wait(),notify()以及notifyAll()适用于同步控制方法和同步控制块中,而sleep()方法适用于任何情况。

StringBuffer,HashTable,Vector以及concurrenthashmap是线程安全的

原创粉丝点击