mybatis中sqlsession在一个静态方法中产生,并发时会产生问题吗

如题所述

第1个回答  2019-07-16
mybatis中sqlsession在一个静态方法中产生,并发时会产生问题吗
总的结论:java是线程安全的,即对任何方法(包括静态方法)都可以不考虑线程冲突,但有一个前提,就是不能存在全局变量。如果存在全局变量,则需要使用同步机制。
如下通过一组对比例子从头讲解:
在多线程中使用静态方法会发生什么事?也就是说多线程访问同一个类的static静态方法会发生什么事?是否会发生线程安全问题?
public
class
Test
{
public
static
void
operation(){
//
...
do
something
}
}
事实证明只要在静态函数中没有处理多线程共享数据,就不存在着多线程访问同一个静态方法会出现资源冲突的问题。下面看一个例子:
public
class
StaticThread
implements
Runnable
{
@Override
public
void
run()
{
//
TODO
Auto-generated
method
stub
StaticAction.print();
}
相似回答
大家正在搜