Java多线程学习笔记

近日,我把《JAVA多线程设计模式》一书又重新温习了一遍,温故而知新嘛。期间,有一些重点和难点的地方,我摘录下来,和大家一起分享一下。

 

²  Synchronizedlock & unlock的区别

Void method() {

Lock();

Unlock();

}

这段代码会有问题的。如果在调用lockunlock方法之间,存在有return语句或者发生异常的话,那么锁定将不可能解除。相反,synchronized块无论怎样,最后都会解除锁定。

 

²  longdouble的操作不是原子操作,即线程不安全,可以加锁或者加volatile关键字。

l  基本型和引用类型的指定、引用是原子的操作。

l  Longdouble的指定、引用是可以分割的。

l  在线程间共享longdouble的字段时,必须在synchronized块或是声明为volatile

 

²  设计使用到线程的程序时,会因为重点放在“主体”与“客体”的不同,出现两种开发方式:Actor-based(注重主体)和Task-based(注重客体)。

l  Actor-based,就是“偏重于线程”的开发方式,代表线程的实例会拥有进行工作所需的信息。这样一来,可降低线程之间需要传递的信息。每个线程会使用其他线程所传递的信息进行处理,改变自己的内部状态。这种线程通常被称为actor

l  Task-based,就是“偏重于工作”的开发方式,就是将信息放在线程之间所传递的实例里。这个开发方式,可使巨大的任务能在轻巧的线程之间往来。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值