zoukankan      html  css  js  c++  java
  • Java并发编程概要

    1. 线程开的越多,则性能越好吗?
      未必,影响多线程性能的因素有:上下文切换,竞争/死锁,资源限制等。对于这些因素要均衡考量,才能获得较好的性能。
    2. 并发控制/线程间的通信方式
      基本的并发控制原语有 volatile, synchronized, ReentrantLock, Atomics, wait/nofify/nofityAll 等
      用于多个线程协调的类: countDownLatch,CyclicBarrier
      信号量: Semaphore, 可控制并发的数量
      两个线程交换数据: Exchanger
      异步等待返回结果:Future,FutureTask (另外也可通过回调实现)
      Volatile: 修饰字段/成员变量,对该变量的访问均需从共享内存中获取,对它的改变必须同步刷新回共享内存,可保证所有线程对变量访问的可见性(CAS)
      Synchronized: 可修饰方法或同步块,确保多个线程在同一时刻只有一个位于同步块中,保证线程对变量访问的可见性和排他性(串行执行),保证线程的本地副本与主存的同步
    3. 多线程两种方式的区别(Thread类和Runnable接口)
      参考http://blog.csdn.net/michellehsiao/article/details/7639788
      a)Runnable 适合多个相同程序代码处理统一资源的情况,可将数据有效分离,较好体现面向对象的编程思想(适用于资源的共享,Thread不可)
      b)Runnable接口 可避免Java单继承机制带来的局限,可继承其他类的同时,实现多线程的功能(扩展该接口)
      c)Runnable 可增加程序健壮性,代码可被多个线程共享
      d)Thread是Runnable接口的子类
      实际应用中以Runnable为主
  • 相关阅读:
    Unity之图片压缩,批量设置,导入自动设置
    Unity之可寻址资源之初始化,下载
    最优二叉树
    独立任务最优调度问题
    石子合并问题
    linux初学笔记
    码农
    用循环打印出多种三角形
    人机猜拳(这是最近的一个总结)
    期末总结
  • 原文地址:https://www.cnblogs.com/yunheyj/p/5812522.html
Copyright © 2011-2022 走看看