如果该方法不涉及写公共的资源比如一个静态的变量或者写文件,修改某个数据库的值的时候没有影响
比如你这个类里的方法只是对输入的参数做一个计算然后返回计算的值就没有影响。
但是如果是修改公共的资源比如修改数据库中存储的一个value则有可能出现问题,如:
public void writeDb(String key, String value) {
collectiondb();
write(key, value);
closeDbCollection();
}
因为Java的线程运行顺序是不一定的,可以第一个线程运行完连接数据库到后挂起了,这时候第二个线程开始运行,如果你的collectiondb()处理使用的是类中的一个实例变量Connection conn来保存数据库的连接,当第二个线程运行完毕以后conn也被关闭了,第一个线程继续执行write函数写数据库值的时候就会抛出异常。
这是一个例子,还有其他可能产生脏数据的问题
多线程如果使用公共资源的话最好在方法上声明synchronized关键字让其同步
❷ java中多线程怎么实现数组对象的共享
例如:一个线程正准备往进去写数据,突然切到另一个线程它先写了进入,在切回来这个线程并不知道这个位置已经写入了数据,所以它还是会傻傻的写入数据,这样另一个线程的数据就被覆盖了。如果是一边添加 ,一边遍历的话程序会产生异常。
所以要用onwritearraylist是最好的选择,但是注意的是,添加元素时它的性能不是很好 。
❸ java语言支持多线程它能同步共享数据处理不同的事件对吗
对。根据博客官网相关查询得知,java语言支持多线程是能同步共享数据处理不同的事件的。Java,是一门面向对象编程语言,1990年代初由詹姆斯·高斯林等人开发出Java语言的雏形。
❹ java多线程机制中线程间可以共享相同的内存单元对还是错
java多线程机制中线程间可以共享相同的内存单元是对的。根据查询相关公开信息显示,同一进程的多个线程间可以共享相同的内存单元,并可利用这些共享单元来实现数据交换、实时通信和必要的同步操作。