解决方案 »
- Javamail发送附件,附件内容被显示在邮件正文中
- java中的数组小问题
- 谁用Jericho HTML Parser,看看Source的public Element findNextElement(int pos, java.lang.String name)方法
- 一个简单的java题
- 急!!!关于hibernate+SQLserver
- [200分]求一JAVA 代码
- 请问怎么修改系统的jre版本?
- [送分话题]Java开发工具(JBuilder)的优势
- RandomAccessFile 类的对象有向文件写字符的方法吗?如果有怎么用?
- socket的通信问题
- 为啥不能运行里
- 用javamail写一个带正文和图片的发送邮件,在网上拷贝了代码,发现出一下错误,怎么回事
“
java 方法本身是线程安全的,这相当于c语言等函数式语言一样,在多线程下任何方法(包括 静态方法,和非静态方法)。但是有一个问题在于,在方法中有没有全局变量(类静态变量,对象实例变量),如果有全局变量,在多线程调用的时候要多加注意进行同步处理,如果都是方法内部的临时变量,则方法不会有任何问题,可以在多线程下使用,而不管是静态方法,还是非静态方法。
”按照这个理论的话每个线程调用的execute方法都是相互独立的,所以我的程序这样使用是没有问题的
希望大大们看看我这个结论是否正确,谢谢
但是所谓的不安全也只是针对你是对他如何操作,比如你程序对他的操作从来就只有读没有写操作,那么无论你如何多请求过来,在这个程序里面还是正确的,因为他从来就不会对dbConn做写操作。
对于你说的Statement对象,也是一样的道理。
判断他是否安全,看你是如何操作这个对象吧,在线程run方法里面的对象都是在独立的栈里面的,所以说是绝对安全的。但是如何是类中定义的一个对象,那么必然所有的线程都共享这个对象,至于你说的安不安全就针对于你对该对象的读写操作是如何进行的。
哦,非常感谢
差不多明白了,也就是说在run线程中使用对象的方法的时候这个方法的状态都是在每个线程独立的栈里的,线程间是互相不影响的(当然如果这个方法操作了对象公共资源就是另外一种情况了),这样理解没有什么问题吧?
查了一下JDBC的connection是线程安全的,Statement对象是在对象方法中定义的,也就是说这种情况下多线程对调用对象中写数据库的方法是安全的吧?希望大师能再解答下,谢谢