java开两个线程操作同一个对象会有什么情况?
2个回答
展开全部
如果这个对象被上线程锁(线程安全),那么只有一个能获取到执行,另一个必须等待
如果只是部分代码被上锁,他们可以共享公共资源,上锁部分就必须等待
如果没有任何限制,那么每个线程都可能创建一个新对象,互不干扰
举个例子,
有台打印机,打印程序,如果a.b都想打印,那么它们必须等待先来的完成,打印程序只能有一个,线程上锁了
有一段服务器代码,有两个甚至多个网页去请求他,他会给每一个线程创建一个一样的对象去处理事物,而不用等待别人操作完
你说的两个线程去操作一个对象,那应该是操作共享资源,只要没有内存溢出等等异常是完全可以正常执行的
如果只是部分代码被上锁,他们可以共享公共资源,上锁部分就必须等待
如果没有任何限制,那么每个线程都可能创建一个新对象,互不干扰
举个例子,
有台打印机,打印程序,如果a.b都想打印,那么它们必须等待先来的完成,打印程序只能有一个,线程上锁了
有一段服务器代码,有两个甚至多个网页去请求他,他会给每一个线程创建一个一样的对象去处理事物,而不用等待别人操作完
你说的两个线程去操作一个对象,那应该是操作共享资源,只要没有内存溢出等等异常是完全可以正常执行的
更多追问追答
追问
给一个函数上锁知道 整个对象怎么上锁?
追答
单例模式,这个模式在编程中用到的很多,你可以百度java的23中设计模式,很详细
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询