java中的synchronized的用法问题

AbnerChai 2004-06-19 12:03:54
在java多线程中,我们常常用如下代码:
synchronized(lockObject)
{
//这里修改共享变量。
}
请问上面synchronized()括号中的参数是怎么给的,怎么有时候是this,有时候又是其它的,有没有一个统一的方法来确定这个变量?

多谢!
...全文
286 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
CsdnRob 2004-07-02
  • 打赏
  • 举报
回复
synchronized("xxxxxx")中xxxxxx是你要同步修改的变量所属的对象。 比如你有一个变量Xxx a,该变量a属于对象B,那么这时就写作: synchronized(B){ ...... //修改a }
AbnerChai 2004-07-01
  • 打赏
  • 举报
回复
这个对象如何定呢?
AbnerChai 2004-06-30
  • 打赏
  • 举报
回复
多谢!!!
dryr 2004-06-30
  • 打赏
  • 举报
回复
synchronized()中的参数就是你需要同步的对象
hrlixiang 2004-06-30
  • 打赏
  • 举报
回复
synchronized(this)
{

}
bestdelphier 2004-06-25
  • 打赏
  • 举报
回复
好久没用同步了,据我当时学习时候的理解,synchronized("xxxxxx")可以是任何一个对象实例,只要保证它一直是同一个,就能起到同步的作用。比如你String a = new String();,然后就可以synchronized(a),就这样。
AbnerChai 2004-06-25
  • 打赏
  • 举报
回复
请问我这个例子该如何填写啊?!!!!
比如,我现在在servlet中需要对一个全局变量:indexNo更改,
于是,我需要用同步方法锁定它,然后来修改indexNo,
如下所示:
public class MyServlet extends HttpServlet {

private static int indexNo = 0;//全局变量

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
synchronized("xxxxxx") //就是这里的参数!!!!
{
indexNo +=1;
}
}
}
这个xxxx处到底如何填写,是根据什么来的,为什么?


没有人给出实质性的回答吗?

errantry 2004-06-24
  • 打赏
  • 举报
回复
操作系统我三年前就学过?
大牛啊.
AbnerChai 2004-06-24
  • 打赏
  • 举报
回复
比如,我现在在servlet中需要对一个全局变量:indexNo更改,
于是,我需要用同步方法锁定它,然后来修改indexNo,
如下所示:
public class MyServlet extends HttpServlet {

private static int indexNo = 0;//全局变量

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
synchronized("xxxxxx") //就是这里的参数!!!!
{
indexNo +=1;
}
}
}
我想请问一下"lhw99(laoliu)"和"wzrlover(无语无声无欲无泪吾独行!)"
这个xxxx处到底如何填写,是根据什么来的,为什么?
不要光说起来容易,(ps操作系统我三年前就学过)。


wandou999 2004-06-24
  • 打赏
  • 举报
回复
同步进行,没有统一的方法,要根据需要
lhw99 2004-06-22
  • 打赏
  • 举报
回复
如果你学了操作系统,就不会不明白。
wzrlover 2004-06-22
  • 打赏
  • 举报
回复
“这要根据时间情况啊”打错了,是实际情况而定!
wzrlover 2004-06-22
  • 打赏
  • 举报
回复
这要根据时间情况啊,看你程序是想对那个对象加锁,
如上synchronized(lockObject)是对lockObject对象进行加锁,防止lockObject对被调用
而修改了共享变量
AbnerChai 2004-06-22
  • 打赏
  • 举报
回复

就这一个参数的问题,没人肯说明吗?
rosen 2004-06-21
  • 打赏
  • 举报
回复
同步(多线程)的知识很多,一时也说不清出,建议你买本书看看。
AbnerChai 2004-06-21
  • 打赏
  • 举报
回复
请大家多多支持!!
AbnerChai 2004-06-21
  • 打赏
  • 举报
回复
可否请anod给个例子加以说明?多谢.
shuneng 2004-06-19
  • 打赏
  • 举报
回复
看你要修改的变量属于哪一个实体啦。
Arias 2004-06-19
  • 打赏
  • 举报
回复
同步处理的参数设置!
anod 2004-06-19
  • 打赏
  • 举报
回复
关于synchronized的参数问题:最基本的需要是它必须是一个对象。比如用int变量就不行。其次,个人认为也是最重要的,它必须是造成同步的对象。比如你发现了因为某个对象的原因而造成方法不能重入,这时候就要以这个对象为synchronized的参数。
加载更多回复(1)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧