摘要:
1)Vector的方法都是同步的(Synchronized),是线程安全的; ArrayList的方法是线程不安全的。 由于线程同步必然会影响性能,因此,ArrayList的性能比Vector好。 请看下面一段代码: 由于ArrayList线程不安全,使用ArrayList时,程序就有可能会抛出异常 阅读全文
摘要:
原子性:是指一个操作是不可中断的。即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。 比如,对于一个静态全局变量int i,两个线程同时对它赋值,线程A给他赋值为1,线程B给他赋值为-1。那么不管这两个线程 以何种方式。何种步调工作,i的值要么是1,要么是-1.线程A和线程B之间 阅读全文
摘要:
执行结果如下 上述代码中开启两个线程T1和T2。T1执行了object.wait()方法,注意在执行wait()方法前T1先申请了object的对象锁,因此在执行obect.wati()时, 它是持有object的对象锁的。wait()方法执行后T1进入等待和状态,并示范object对象锁。T2在执 阅读全文
摘要:
首先我们要明确,线程中断并不会使线程立即退出,而是发送一个通知,告知目标线程你该退出了,但是后面如何处理,则完全有目标线程自行决定。 这就是和stop()不一样的地方,stop执行后线程会立即终止,这样可能会引起数据不一致的问题(所以stop()方法已经被废弃不推荐使用了)。 线程中断有三个方法 先 阅读全文