在进程内部,如果要干多件事情,就需要运行多个子任务,我们就把这些子任务叫做线程。
线程共享所属进程内的内存空间。
基本线程同步 synchronized
synchronized关键字,对某个对象加锁。synchronized代码块是原子操作。同步方法运行过程中是可以运行非同步方法的。
对事务写加锁,而对事务读不加锁,可能产生脏读,因为在写的过程中是可以执行不加锁的读的。解决方法:读加锁(在写锁释放时才可以执行读)。
一个同步方法可以调用另一个同步方法,一个线程已经拥有某个对象的锁,再次申请的时候仍然会得到该对象的锁,也就是说synchronized获得的锁是可重入的。