
hashtable\vector 是线程同步的
hashmap arraylist是线程非同步的
同步指的是多个人来 *** 作这个东西只能一个一个排队来, 非同步就是大家可以同时 *** 作;高方法多线程的场景如果非同步 就有可能导致大家共同 *** 作一个数据的问题。
比如 你的yhk是一个类的对象,现在有100块,你在一个取款机取款读到卡里钱是100再取100 =0余额,你妈妈也同时再给这个卡存款 由于并发和你同时进行 读到卡里钱100+100=200,最后应该写回数据库 到底0还是200呢 是不是都不对,如果整个系统都是一个程序内,那就是2个线程非同步情况。 同步后就不会有这样问题,你 *** 作完了,你妈妈才能 *** 作。
当然这里只是模拟简单例子,实际情况会更复杂呵呵。
1共用一个连接就可以
2其实一样可以用lock实现,把数据库 *** 作写成一个函数,函数内加lock。c#会安排他们排队
比如
private static object privateObjectLock = new object();
public static xxoo()
{
lock(privateObjectLock)
{
//数据 *** 作语句
}
}
}
你在一个函数里实现数据库 *** 作。然后线程 *** 作数据库都调用他
方法加同步锁,保证在同一个时间内只有一个人可以使用可以解决,具体可以参照>
以上就是关于java中哪些类是线程同步的,哪些类不是线程同步的类的线程同步指的是什么,能举例说明这2种情况吗全部的内容,包括:java中哪些类是线程同步的,哪些类不是线程同步的类的线程同步指的是什么,能举例说明这2种情况吗、c# 多线程访问数据库、java多线程同时对数据库插入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)