java多线程

多线程是实现多任务系统的一种方式

1.[color=darkred]进程和线程的区别[/color][size=medium][/size]
[align=left] 进程实际上就是系统中运行的一个程序,有一块独立的内存空间,一个进程可以有多个线程
线程指的是进程中的一个执行流程,进程中的线程共享进程的内存[/align]
2.synchronized的一些东西
如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问[b]这个对象[/b]中任何一个synchronized方法

无论synchronized关键字加在方法上还是对象上,它取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的对象访问。

[align=center]假设P1、P2是同一个类的不同对象,这个类中定义了以下几种情况的同步块或同步方法,P1、P2就都可以调用它们。[/align]
Public synchronized void methodA() 
  {
  //….
  }

这个也就是同步方法,这时synchronized 锁定的是调用它的对象
实际上它的作用和下面的代码是一样的
 public void methodA() 
  {
  synchronized (this) // (1)
  {
  //…..
  }
  }

这里1处的this指的就是调用这个方法的对象

Class Demo
  {
  public synchronized static void methodA() // 同步的static 函数
  {
  //….
  }
  public void methodB()
  {
  synchronized(Foo.class) // class literal(类名称字面常量)
  }
  }


methodB中和methodA的效果是一样的 都可以防止多个线程同时访问这个方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值