并发编程,与线程安全

线程安全的几种情况

	1.无论任何线程安全问题,一定要有共享变量
	2.情况一:代码是同步的,例如我们平常写的代码,但是tomcat分发请求是多线程的,每一个请求过来都会开启一个线程
	   而tomcat有一个主线程,会加载servlet,controller......
	   如果代码是同步的,但是同步代码中有共享数据,例如服务启动tomcat加载的ioc容器里面的都是共享变量,
	   代码块的操作,可能会导致多线程执行和单线程执行的结果不一样,那么线程不安全
	  
	  情况二:代码中,我们自己开启了多个线程去异步完成任务,那么就算tomcat只是分发一个线程过来执行这块代码
	  由于这块代码本身就是异步的,那么如果有共享变量,并且每次执行这块代码,由于代码是异步的,那么可能出现线程安全问题
	  等于双重多线程,tomcat多线程,代码块也是多线程的
		
	
	3.其本质就是有共享变量,而且这块代码的执行会出现不同的情况,而导致这个情况的就是代码 在多个线程中执行

猜你喜欢

转载自blog.csdn.net/Chen4852010/article/details/120897400