线程安全问题:
出现的根本原因:
1.出现两个或两个以上的线程对象,而且线程之间共享一个资源
2.有多个语句执行了共享资源
解决线程安全问题有两个方法:
方式一:同步代码块:
synchronized(锁对象){ 需要被同步的代码 }
同步代码需要注意的事项:1.锁对象可以是任意对象
2.一个线程在同步代码块中sleep了,并不会释放锁对象
3.如果不存在着线程安全问题,千万不要使用同步代码块,否则会降低效率;
4.锁对象必须是多线程共享的一个资源,否则锁不住;
方式二:同步函数:下次讲。
线程安全问题:
出现的根本原因:
1.出现两个或两个以上的线程对象,而且线程之间共享一个资源
2.有多个语句执行了共享资源
解决线程安全问题有两个方法:
方式一:同步代码块:
synchronized(锁对象){ 需要被同步的代码 }
同步代码需要注意的事项:1.锁对象可以是任意对象
2.一个线程在同步代码块中sleep了,并不会释放锁对象
3.如果不存在着线程安全问题,千万不要使用同步代码块,否则会降低效率;
4.锁对象必须是多线程共享的一个资源,否则锁不住;
方式二:同步函数:下次讲。