摘要: 为何有了synchronized还要有Lock synchronized只有等当前线程执行完,才能释放锁,或者虚拟机出错时释放资源。 synchronized可能造成其它线程长时间的等待,比如获取锁的线程在执行耗时的IO操作,那么其它需要该资源的线程只能长时间的等待。 synchronized无法知 阅读全文
posted @ 2016-04-19 21:13 空心菜小手 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 一.什么时候会出现线程安全问题 在单线程中不会出现线程安全问题,而在 阅读全文
posted @ 2016-04-19 17:07 空心菜小手 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 线程的概念 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的 阅读全文
posted @ 2016-04-19 10:29 空心菜小手 阅读(211) 评论(0) 推荐(0) 编辑