线程同步之synchronized关键字

胭脂泪12 2012-10-10 09:55:40
synchronized关键字怎么使用?
...全文
201 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjflinchong 2012-10-11
  • 打赏
  • 举报
回复
线程 数据 同步
isea533 2012-10-11
  • 打赏
  • 举报
回复
看这里。。。
http://lavasoft.blog.51cto.com/62575/27069/
  • 打赏
  • 举报
回复
你如果多线程的程序需要用到
NickCheng 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

还是举例子吧

int a = 1 //全局变量
public synchronized void func(){
a = a +1 ;
System.out.println(a);
}
synchronized代表方法是同步的,没有synchronized代表是异步的
假如有两个线程(A,B)访问这段代码
一、同步情况:
A先访问,只有A执行完方法fun()后,……
[/Quote]
嗯,这个说得很清楚,需要根据实际的业务需求使用~!
现在jdk1.5(含)版本以上的都有一个线程处理的API(java.util.concurrent),
可以使用API就无需考虑那么多啦,API都封装好了~!
懒懒 2012-10-11
  • 打赏
  • 举报
回复
还是举例子吧

int a = 1 //全局变量
public synchronized void func(){
a = a +1 ;
System.out.println(a);
}
synchronized代表方法是同步的,没有synchronized代表是异步的
假如有两个线程(A,B)访问这段代码
一、同步情况:
A先访问,只有A执行完方法fun()后,B才能访问,打印结果A是2,B是3
二、异步情况:
A先访问,A访问时B也能访问,有可能当A执行到a= a+1时,B也访问到a=a+1,这时a的值为3
所以接下来A和B打印结果都是3
ljd1 2012-10-10
  • 打赏
  • 举报
回复
例如 public synchronized void f(){}那么这个方法在有对象访问他时就被加锁了只有等该对象访问完毕后其他对象才能访问它
chiyuxing 2012-10-10
  • 打赏
  • 举报
回复
synchronized{}
synchronized(flag){}

62,620

社区成员

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

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