码迷,mamicode.com
首页 > 编程语言 > 详细

Java多线程学习笔记

时间:2015-05-25 16:16:22      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

概念部分:

1.并发和并行的区别:

   并发 (Concurrency):一个处理器“同时”处理多个任务

   并行 (Parallelism):多个处理器 “同时”处理多个任务

 

2.多线程的优点和缺点:

  多线程的优点: 

    可并行处理任务,减少单个任务的等待时间

    线程较进程或子进程系统开销小

    线程间较容易共享资源

    多核情况下可充分利用CPU资源

  多线程的缺点:
    访问冲突
    锁竞争
      –死锁
      –锁粒度
  上下文切换开销
  同步/内存拷贝开销

 

 

JVM部分:

技术分享

 

《Tinking In Java》部分:

1.并发具有可论证的确定性,但是实际上具有不可确定性。

2.如果没有任务会阻塞,那么在单处理器机器上使用并发就没有任何意义。

3.某些编程语言被设计为可以将并发任务彼此隔离,这些语言通常被称作函数型语言——erlang。

4.语法糖:while(countDown-- >0)、private final int id = taskCount++; 使用后置的++和--,可以进行计数器加减的操作,方便又清晰。

5.各种执行器(Executor):

  CachedThreadPool:一般首选,会创建于所需数量相同的线程。

  FixedThreadPool:事先分好好线程,限制了线程数量。

  SingleThreadExecutor就像是线程数量为1的FixedThreadPool(它提供了长期存活和并发保证,适合于某些特定任务)。SingleThreadExecutor会序列化所有提交给它的任务。

6.如果希望任务完成时能返回值,用callable代替runnable接口。

7.

Java多线程学习笔记

标签:

原文地址:http://www.cnblogs.com/xujanus/p/4384559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!