目标:
1:知道多线程间共享同一个全局变量(同时处理这个全局变量)会产生资源竞争等问题
2:掌握解决多线程间资源竞争的方法(join方法)
一:多线程间共享同一个全局变量(同时处理这个全局变量)会产生资源竞争等问题
你问我答:多线程什么情况会产生资源竞争的问题呢?
答:两个(多个)子线程同时处理一个公共资源时(比如说同一个全局变量),就会产生资源竞争的问题
图片详解
问题代码解释
二:解决多线程间资源竞争的方法—— join()
功能:可以有效解决多线程间资源竞争问题,即让一个指定线程先执行完在执行其他线程,即从多线程变为单线程但是会造成程序效率变低
语法:指定线程 . join()
注意事项:
1:子线程的join方法要在子线程的start方法后加入!
2:给某个子线程加入join方法后,这个子线程执行任务时另一个子线程则不启动了,等待这个子线程执行结束,另一个子线程才启动继续执行任务**
快速代码体验