java两个线程同时调用一个类里的同一个方法,这样会出现什么情况?有没有问题?
根据不同的情况,可能的情况如下:
1。如果此方法不涉及写入公共资源(如静态变量或写入文件),则在修改数据库值时不会产生影响。
2.例如,类中的方法只计算输入参数并返回计算值,这没有任何效果。
3.但是,如果要修改公共资源,例如修改存储在数据库中的值,则可能会出现问题,例如:
publicvoidwritedb(stringkey,stringvalue){
collectiondb()
write(key,stringvalue){
,4。由于java线程的运行顺序不确定,第一个线程连接到数据库后挂起,第二个线程开始运行。如果collectiondb()进程使用类中的实例变量connection,则conn用于保存数据库连接。当第二个线程完成运行时,conn也关闭。当第一个线程继续执行write函数来写入数据库值时,将引发异常。
这是一个示例,还有其他问题可能会生成脏数据。
如果多线程使用公共资源,最好在同步方法上声明synchronized关键字
原文标题:java多线程同时运行 java两个线程同时调用一个类里的同一个方法,这样会出现什么情况?有没有问题?,如若转载,请注明出处:https://www.tzjingsheng.com/news/50145.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「豪运号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。